blob: 0a593e15524f4e2ba70a05ecb5f27a3d7c44f429 [file] [log] [blame]
Simon Pelchat9ed3e992023-02-17 01:16:161// Copyright 2023 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/browser/preloading/preloading.h"
6
Md Hasibul Hasana963a9342024-04-03 10:15:147#include <string_view>
8
Simon Pelchat9ed3e992023-02-17 01:16:169#include "base/notreached.h"
Kouhei Uenoa234a8e2023-11-15 05:24:4210#include "content/public/browser/preloading.h"
11#include "content/public/browser/preloading_trigger_type.h"
Simon Pelchat9ed3e992023-02-17 01:16:1612
13namespace content {
14
Md Hasibul Hasana963a9342024-04-03 10:15:1415std::string_view PreloadingTypeToString(PreloadingType type) {
Simon Pelchat9ed3e992023-02-17 01:16:1616 switch (type) {
17 case PreloadingType::kUnspecified:
18 return "Unspecified";
19 case PreloadingType::kPreconnect:
20 return "Preconnect";
21 case PreloadingType::kPrefetch:
22 return "Prefetch";
23 case PreloadingType::kPrerender:
24 return "Prerender";
25 case PreloadingType::kNoStatePrefetch:
26 return "NoStatePrefetch";
Takashi Toyoshima6c967d02023-09-28 08:47:3127 case PreloadingType::kLinkPreview:
28 return "LinkPreview";
Lingqi Chi844e05d42025-07-23 02:50:5029 case PreloadingType::kPrerenderUntilScript:
30 return "PrerenderUntilScript";
Simon Pelchat9ed3e992023-02-17 01:16:1631 }
Peter Boström01ab59a2024-08-15 02:39:4932 NOTREACHED();
Simon Pelchat9ed3e992023-02-17 01:16:1633}
34
Kouhei Uenoa234a8e2023-11-15 05:24:4235PreloadingPredictor GetPredictorForPreloadingTriggerType(
36 PreloadingTriggerType type) {
Domenic Denicolaff44ecf2023-11-10 05:20:4137 switch (type) {
Kouhei Uenoa234a8e2023-11-15 05:24:4238 case PreloadingTriggerType::kSpeculationRule:
Takashi Toyoshima9e3ca212023-04-28 05:57:5939 return content_preloading_predictor::kSpeculationRules;
Kouhei Uenoa234a8e2023-11-15 05:24:4240 case PreloadingTriggerType::kSpeculationRuleFromIsolatedWorld:
Takashi Toyoshima9e3ca212023-04-28 05:57:5941 return content_preloading_predictor::kSpeculationRulesFromIsolatedWorld;
Kouhei Uenoa234a8e2023-11-15 05:24:4242 case PreloadingTriggerType::kSpeculationRuleFromAutoSpeculationRules:
Domenic Denicolad92bd47e2023-11-13 03:38:5343 return content_preloading_predictor::
44 kSpeculationRulesFromAutoSpeculationRules;
Kouhei Uenoa234a8e2023-11-15 05:24:4245 case PreloadingTriggerType::kEmbedder:
46 // GetPredictorForPreloadingTriggerType is currently called for
47 // speculation rules code-path only, thus NOTREACHED().
48 // However there is nothing fundamentally wrong with calling it
49 // for embedder trigger code-path (while you might want to be specific
50 // about the `PreloadingPredictor` more than just "embedder").
51 // Revisit if needed.
Peter Boströmfc7ddc182024-10-31 19:37:2152 NOTREACHED();
Takashi Toyoshima9e3ca212023-04-28 05:57:5953 }
Peter Boström01ab59a2024-08-15 02:39:4954 NOTREACHED();
Takashi Toyoshima9e3ca212023-04-28 05:57:5955}
56
Simon Pelchat9ed3e992023-02-17 01:16:1657} // namespace content