The captive portal component is a layered component. The core/ subdirectory
includes code shared across all platforms, including iOS; code in core/
cannot depend on the Content API. The content/ subdirectory, meanwhile, is
used only on //content-based platforms and can freely use the Content API.