Make WebRequest and GeckoWebExecutor First-Party aware
GeckoWebExecutor, and WebRequest, are only aware of the request URL, but they don't have necessary context for setting first-party origin attributes. https://searchfox.org/mozilla-beta/source/widget/android/WebExecutorSupport.cpp#360 ```cpp nsresult WebExecutorSupport::CreateStreamLoader( java::WebRequest::Param aRequest, int32_t aFlags, java::GeckoResult::Param aResult) { const auto req = java::WebRequest::LocalRef(aRequest); const auto reqBase = java::WebMessage::LocalRef(req.Cast<java::WebMessage>()); nsCOMPtr<nsIURI> uri; nsresult rv = NS_NewURI(getter_AddRefs(uri), reqBase->Uri()->ToString()); NS_ENSURE_SUCCESS(rv, NS_ERROR_MALFORMED_URI); nsCOMPtr<nsIChannel> channel; rv = NS_NewChannel(getter_AddRefs(channel), uri, nsContentUtils::GetSystemPrincipal(), nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL, nsIContentPolicy::TYPE_OTHER); NS_ENSURE_SUCCESS(rv, rv); if (aFlags & java::GeckoWebExecutor::FETCH_FLAGS_ANONYMOUS) { channel->SetLoadFlags(nsIRequest::LOAD_ANONYMOUS); } nsCOMPtr<nsICookieJarSettings> cookieJarSettings = CookieJarSettings::Create(); MOZ_ASSERT(cookieJarSettings); nsCOMPtr<nsILoadInfo> loadInfo = channel->LoadInfo(); loadInfo->SetCookieJarSettings(cookieJarSettings); // setup http/https specific things nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel, &rv)); if (httpChannel) { rv = SetupHttpChannel(httpChannel, channel, aRequest); NS_ENSURE_SUCCESS(rv, rv); } ``` I'll open a bugzilla ticket for this, too.
issue