#include "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h"
#include "base/check.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "base/task/sequenced_task_runner.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/global_features.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
#include "chrome/common/chrome_version.h"
#include "components/user_education/common/user_education_features.h"
#include "components/user_education/webui/whats_new_registry.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/reduce_accept_language_controller_delegate.h"
#include "net/base/url_util.h"
#include "net/http/http_util.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/simple_url_loader.h"
#include "services/network/public/mojom/url_response_head.mojom.h"
#include "url/gurl.h"
namespace whats_new {
const char kChromeWhatsNewURL[] = …;
const char kChromeWhatsNewStagingURL[] = …;
const char kChromeWhatsNewV2URL[] = …;
const char kChromeWhatsNewV2StagingURL[] = …;
const int64_t kMaxDownloadBytes = …;
GURL GetV2ServerURL(bool is_staging) { … }
GURL GetV2ServerURLForRender(bool is_staging) { … }
GURL GetServerURL(bool may_redirect, bool is_staging) { … }
namespace {
class WhatsNewFetcher : public BrowserListObserver { … };
}
void StartWhatsNewFetch(Browser* browser) { … }
}