diff --git a/modules/@angular/platform-browser/src/browser/title.ts b/modules/@angular/platform-browser/src/browser/title.ts
index 5c6880d57f..6cdf678f98 100644
--- a/modules/@angular/platform-browser/src/browser/title.ts
+++ b/modules/@angular/platform-browser/src/browser/title.ts
@@ -6,6 +6,8 @@ import {getDOM} from '../dom/dom_adapter';
* it is not possible to bind to the `text` property of the `HTMLTitleElement` elements
* (representing the `
` tag). Instead, this service can be used to set and get the current
* title value.
+ *
+ * @experimental
*/
export class Title {
/**
diff --git a/modules/@angular/platform-browser/src/web_workers/shared/client_message_broker.ts b/modules/@angular/platform-browser/src/web_workers/shared/client_message_broker.ts
index bc8b8ab53a..a09b65a88e 100644
--- a/modules/@angular/platform-browser/src/web_workers/shared/client_message_broker.ts
+++ b/modules/@angular/platform-browser/src/web_workers/shared/client_message_broker.ts
@@ -7,6 +7,9 @@ import {DateWrapper, StringWrapper, isPresent, print, stringify} from '../../fac
import {MessageBus} from './message_bus';
import {Serializer} from './serializer';
+/**
+ * @experimental
+ */
export abstract class ClientMessageBrokerFactory {
/**
* Initializes the given channel and attaches a new {@link ClientMessageBroker} to it.
@@ -32,6 +35,9 @@ export class ClientMessageBrokerFactory_ extends ClientMessageBrokerFactory {
}
}
+/**
+ * @experimental
+ */
export abstract class ClientMessageBroker {
abstract runOnService(args: UiArguments, returnType: Type): Promise;
}
@@ -148,10 +154,16 @@ class MessageData {
}
}
+/**
+ * @experimental
+ */
export class FnArg {
constructor(public value: any /** TODO #9100 */, public type: Type) {}
}
+/**
+ * @experimental
+ */
export class UiArguments {
constructor(public method: string, public args?: FnArg[]) {}
}
diff --git a/modules/@angular/platform-browser/src/web_workers/shared/message_bus.ts b/modules/@angular/platform-browser/src/web_workers/shared/message_bus.ts
index d5f478cd2f..ea01d14d66 100644
--- a/modules/@angular/platform-browser/src/web_workers/shared/message_bus.ts
+++ b/modules/@angular/platform-browser/src/web_workers/shared/message_bus.ts
@@ -8,6 +8,7 @@ import {EventEmitter} from '../../facade/async';
* Communication is based on a channel abstraction. Messages published in a
* given channel to one MessageBusSink are received on the same channel
* by the corresponding MessageBusSource.
+ * @experimental
*/
export abstract class MessageBus implements MessageBusSource, MessageBusSink {
/**
@@ -41,6 +42,9 @@ export abstract class MessageBus implements MessageBusSource, MessageBusSink {
abstract to(channel: string): EventEmitter;
}
+/**
+ * @experimental
+ */
export interface MessageBusSource {
/**
* Sets up a new channel on the MessageBusSource.
@@ -64,6 +68,9 @@ export interface MessageBusSource {
from(channel: string): EventEmitter;
}
+/**
+ * @experimental
+ */
export interface MessageBusSink {
/**
* Sets up a new channel on the MessageBusSink.
diff --git a/modules/@angular/platform-browser/src/web_workers/shared/serializer.ts b/modules/@angular/platform-browser/src/web_workers/shared/serializer.ts
index 891f4ff2ae..29835bd75e 100644
--- a/modules/@angular/platform-browser/src/web_workers/shared/serializer.ts
+++ b/modules/@angular/platform-browser/src/web_workers/shared/serializer.ts
@@ -11,6 +11,9 @@ import {LocationType} from './serialized_types';
// PRIMITIVE is any type that does not need to be serialized (string, number, boolean)
// We set it to String so that it is considered a Type.
+/**
+ * @experimental
+ */
export const PRIMITIVE: Type = String;
@Injectable()
diff --git a/modules/@angular/platform-browser/src/web_workers/shared/service_message_broker.ts b/modules/@angular/platform-browser/src/web_workers/shared/service_message_broker.ts
index c9a67ea463..6781f4b897 100644
--- a/modules/@angular/platform-browser/src/web_workers/shared/service_message_broker.ts
+++ b/modules/@angular/platform-browser/src/web_workers/shared/service_message_broker.ts
@@ -29,6 +29,9 @@ export class ServiceMessageBrokerFactory_ extends ServiceMessageBrokerFactory {
}
}
+/**
+ * @experimental
+ */
export abstract class ServiceMessageBroker {
abstract registerMethod(
methodName: string, signature: Type[], method: Function, returnType?: Type): void;
@@ -88,6 +91,9 @@ export class ServiceMessageBroker_ extends ServiceMessageBroker {
}
}
+/**
+ * @experimental
+ */
export class ReceivedMessage {
method: string;
args: any[];
diff --git a/modules/@angular/platform-browser/src/web_workers/ui/location_providers.ts b/modules/@angular/platform-browser/src/web_workers/ui/location_providers.ts
index af94aa61dd..c0fb86867e 100644
--- a/modules/@angular/platform-browser/src/web_workers/ui/location_providers.ts
+++ b/modules/@angular/platform-browser/src/web_workers/ui/location_providers.ts
@@ -8,6 +8,7 @@ import {MessageBasedPlatformLocation} from './platform_location';
/**
* A list of {@link Provider}s. To use the router in a Worker enabled application you must
* include these providers when setting up the render thread.
+ * @experimental
*/
export const WORKER_UI_LOCATION_PROVIDERS = [
MessageBasedPlatformLocation, BrowserPlatformLocation,
diff --git a/modules/@angular/platform-browser/src/web_workers/worker/location_providers.ts b/modules/@angular/platform-browser/src/web_workers/worker/location_providers.ts
index fdbd597b15..d9a3fa3ce7 100644
--- a/modules/@angular/platform-browser/src/web_workers/worker/location_providers.ts
+++ b/modules/@angular/platform-browser/src/web_workers/worker/location_providers.ts
@@ -7,6 +7,7 @@ import {WebWorkerPlatformLocation} from './platform_location';
/**
* Those providers should be added when the router is used in a worker context in addition to the
* {@link ROUTER_PROVIDERS} and after them.
+ * @experimental
*/
export const WORKER_APP_LOCATION_PROVIDERS = [
{provide: PlatformLocation, useClass: WebWorkerPlatformLocation}, {
diff --git a/modules/@angular/platform-browser/src/worker_app.ts b/modules/@angular/platform-browser/src/worker_app.ts
index 17d840c519..1c370ed100 100644
--- a/modules/@angular/platform-browser/src/worker_app.ts
+++ b/modules/@angular/platform-browser/src/worker_app.ts
@@ -22,9 +22,15 @@ class PrintLogger {
const WORKER_APP_PLATFORM_MARKER = new OpaqueToken('WorkerAppPlatformMarker');
+/**
+ * @experimental
+ */
export const WORKER_APP_PLATFORM_PROVIDERS: Array =
[PLATFORM_COMMON_PROVIDERS, {provide: WORKER_APP_PLATFORM_MARKER, useValue: true}];
+/**
+ * @experimental
+ */
export const WORKER_APP_APPLICATION_PROVIDERS: Array = [
APPLICATION_COMMON_PROVIDERS, FORM_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS, Serializer,
{provide: ClientMessageBrokerFactory, useClass: ClientMessageBrokerFactory_},
@@ -36,6 +42,9 @@ export const WORKER_APP_APPLICATION_PROVIDERS: Array = [
PLATFORM_COMMON_PROVIDERS, {provide: WORKER_RENDER_PLATFORM_MARKER, useValue: true},
{provide: PLATFORM_INITIALIZER, useValue: initWebWorkerRenderPlatform, multi: true}
];
+/**
+ * * @experimental
+ */
export const WORKER_UI_APPLICATION_PROVIDERS: Array = [
APPLICATION_COMMON_PROVIDERS,
MessageBasedRenderer,
@@ -108,6 +119,9 @@ function initWebWorkerRenderPlatform(): void {
BrowserGetTestability.init();
}
+/**
+ * * @experimental
+ */
export function workerUiPlatform(): PlatformRef {
if (isBlank(getPlatform())) {
createPlatform(ReflectiveInjector.resolveAndCreate(WORKER_UI_PLATFORM_PROVIDERS));