File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -40,6 +40,7 @@ if config_env() == :dev do
4040 ]
4141
4242 config :live_debugger ,
43+ devtools_allow_redirects: false ,
4344 live_reload: [
4445 patterns: [
4546 ~r" priv/static/.*(js|css|svg)$" ,
Original file line number Diff line number Diff line change @@ -11,21 +11,24 @@ chrome.devtools.panels.create(
1111 panelWindow = window ;
1212 isShown = true ;
1313 try {
14- window . set_iframe_url ( await getLiveDebuggerSessionURL ( chrome ) ) ;
14+ window . setIframeUrl ( await getLiveDebuggerSessionURL ( chrome ) ) ;
1515 } catch ( error ) {
16- window . set_iframe_url ( null ) ;
16+ window . setIframeUrl ( null ) ;
1717 }
1818 }
1919 } ) ;
2020
2121 chrome . webNavigation . onCompleted . addListener ( async ( details ) => {
22- if ( details . tabId === chrome . devtools . inspectedWindow . tabId ) {
22+ if (
23+ details . tabId === chrome . devtools . inspectedWindow . tabId &&
24+ allowRedirects ( chrome )
25+ ) {
2326 try {
24- panelWindow . set_iframe_url ( await getLiveDebuggerSessionURL ( chrome ) ) ;
27+ panelWindow . setIframeUrl ( await getLiveDebuggerSessionURL ( chrome ) ) ;
2528 } catch ( error ) {
26- panelWindow . set_iframe_url ( null ) ;
29+ panelWindow . setIframeUrl ( null ) ;
2730 }
2831 }
2932 } ) ;
30- } ,
33+ }
3134) ;
Original file line number Diff line number Diff line change 11<!doctype html>
22< html lang ="en ">
3- < head >
4- < meta charset ="UTF-8 " />
5- < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6- </ head >
7- < body >
8- < script src ="url.js "> </ script >
9- < script src ="devtools.js "> </ script >
10- </ body >
11- </ html >
3+
4+ < head >
5+ < meta charset ="UTF-8 " />
6+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
7+ </ head >
8+
9+ < body >
10+ < script src ="url.js "> </ script >
11+ < script src ="devtools.js "> </ script >
12+ </ body >
13+
14+ </ html >
Original file line number Diff line number Diff line change 11const iframe = document . getElementById ( "content" ) ;
22const errorInfo = document . getElementById ( "error-info" ) ;
33
4- function set_iframe_url ( url ) {
4+ function setIframeUrl ( url ) {
55 if ( url ) {
66 iframe . src = url ;
77 iframe . hidden = false ;
Original file line number Diff line number Diff line change @@ -73,3 +73,28 @@ function getLiveDebuggerSessionURL(browserElement) {
7373 ) ;
7474 } ) ;
7575}
76+
77+ function allowRedirects ( ) {
78+ return new Promise ( ( resolve , reject ) => {
79+ const script = `
80+ (function() {
81+ const metaTag = document.querySelector('meta[name="live-debugger-config"]');
82+ if (metaTag) {
83+ return metaTag.getAttribute('devtools-allow-redirects') === 'true';
84+ }
85+ return false;
86+ })();
87+ ` ;
88+
89+ browserElement . devtools . inspectedWindow . eval (
90+ script ,
91+ ( result , isException ) => {
92+ if ( isException ) {
93+ reject ( new Error ( "Error checking allow redirects" ) ) ;
94+ } else {
95+ resolve ( result ) ;
96+ }
97+ }
98+ ) ;
99+ } ) ;
100+ }
Original file line number Diff line number Diff line change @@ -11,21 +11,24 @@ browser.devtools.panels.create(
1111 panelWindow = window ;
1212 isShown = true ;
1313 try {
14- window . set_iframe_url ( await getLiveDebuggerSessionURL ( browser ) ) ;
14+ window . setIframeUrl ( await getLiveDebuggerSessionURL ( browser ) ) ;
1515 } catch ( error ) {
16- window . set_iframe_url ( null ) ;
16+ window . setIframeUrl ( null ) ;
1717 }
1818 }
1919 } ) ;
2020
2121 browser . webNavigation . onCompleted . addListener ( async ( details ) => {
22- if ( details . tabId === chrome . devtools . inspectedWindow . tabId ) {
22+ if (
23+ details . tabId === chrome . devtools . inspectedWindow . tabId &&
24+ allowRedirects ( browser )
25+ ) {
2326 try {
24- panelWindow . set_iframe_url ( await getLiveDebuggerSessionURL ( browser ) ) ;
27+ panelWindow . setIframeUrl ( await getLiveDebuggerSessionURL ( browser ) ) ;
2528 } catch ( error ) {
26- panelWindow . set_iframe_url ( null ) ;
29+ panelWindow . setIframeUrl ( null ) ;
2730 }
2831 }
2932 } ) ;
30- } ,
33+ }
3134) ;
Original file line number Diff line number Diff line change @@ -86,6 +86,7 @@ defmodule LiveDebugger do
8686 debug_button? = Keyword . get ( config , :debug_button? , true )
8787 highlighting? = Keyword . get ( config , :highlighting? , true )
8888 version = Application . spec ( :live_debugger ) [ :vsn ] |> to_string ( )
89+ devtools_allow_redirects = Keyword . get ( config , :devtools_allow_redirects , true )
8990
9091 live_debugger_url = "http://#{ ip_string } :#{ port } "
9192 live_debugger_assets_url = "http://#{ ip_string } :#{ port } /#{ @ assets_path } "
@@ -96,7 +97,8 @@ defmodule LiveDebugger do
9697 browser_features?: browser_features? ,
9798 debug_button?: debug_button? ,
9899 highlighting?: highlighting? ,
99- version: version
100+ version: version ,
101+ devtools_allow_redirects: devtools_allow_redirects
100102 }
101103
102104 tags = LiveDebuggerWeb.Components.Config . live_debugger_tags ( assigns )
You can’t perform that action at this time.
0 commit comments