With this change we move `XhrFactory` to the root entrypoint of `@angular/commmon`, this is needed so that we can configure `XhrFactory` DI token at a platform level, and not add a dependency  between `@angular/platform-browser` and `@angular/common/http`.
Currently, when using `HttpClientModule` in a child module on the server, `ReferenceError: XMLHttpRequest is not defined` is being thrown because the child module has its own Injector and causes `XhrFactory` provider to be configured to use `BrowserXhr`.
Therefore, we should configure the `XhrFactory` at a platform level similar to other Browser specific providers.
BREAKING CHANGE:
`XhrFactory` has been moved from `@angular/common/http` to `@angular/common`.
**Before**
```ts
import {XhrFactory} from '@angular/common/http';
```
**After**
```ts
import {XhrFactory} from '@angular/common';
```
Closes #41311
PR Close #41313
		
	
			
		
			
				
	
	
		
			42 lines
		
	
	
		
			942 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			942 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| load("//tools:defaults.bzl", "jasmine_node_test", "karma_web_test_suite", "ts_library")
 | |
| load("//tools/circular_dependency_test:index.bzl", "circular_dependency_test")
 | |
| 
 | |
| circular_dependency_test(
 | |
|     name = "circular_deps_test",
 | |
|     entry_point = "angular/packages/common/http/index.js",
 | |
|     deps = ["//packages/common/http"],
 | |
| )
 | |
| 
 | |
| ts_library(
 | |
|     name = "test_lib",
 | |
|     testonly = True,
 | |
|     srcs = glob(
 | |
|         ["**/*.ts"],
 | |
|     ),
 | |
|     # Visible to //:saucelabs_unit_tests_poc target
 | |
|     visibility = ["//:__pkg__"],
 | |
|     deps = [
 | |
|         "//packages/common",
 | |
|         "//packages/common/http",
 | |
|         "//packages/common/http/testing",
 | |
|         "//packages/core",
 | |
|         "//packages/core/testing",
 | |
|         "@npm//rxjs",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| jasmine_node_test(
 | |
|     name = "test",
 | |
|     bootstrap = ["//tools/testing:node_es5"],
 | |
|     deps = [
 | |
|         ":test_lib",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| karma_web_test_suite(
 | |
|     name = "test_web",
 | |
|     deps = [
 | |
|         ":test_lib",
 | |
|     ],
 | |
| )
 |