diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index 07200ce444f..b04244e94a2 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -613,6 +613,14 @@ fn scheme_fetch( } if let Ok(file_path) = url.to_file_path() { if let Ok(file) = File::open(file_path.clone()) { + if let Ok(metadata) = file.metadata() { + if metadata.is_dir() { + return Response::network_error(NetworkError::Internal( + "Opening a directory is not supported".into(), + )); + } + } + // Get range bounds (if any) and try to seek to the requested offset. // If seeking fails, bail out with a NetworkError. let file_size = match file.metadata() { diff --git a/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini b/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini index aa5ace484bf..10212c3612d 100644 --- a/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini +++ b/tests/wpt/metadata/webdriver/tests/get_current_url/get.py.ini @@ -1,2 +1,7 @@ [get.py] - disabled: for now + [test_no_browsing_context] + expected: ERROR + + [test_get_current_url_nested_browsing_context] + expected: FAIL + diff --git a/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini b/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini index b9ec0b5e79c..d5a4b0288d8 100644 --- a/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini +++ b/tests/wpt/metadata/webdriver/tests/navigate_to/navigate.py.ini @@ -1,2 +1,4 @@ [navigate.py] - disabled: for now + [test_no_browsing_context] + expected: ERROR +