Moves content-specific code out of SerializedNavigationEntry.

This CL abstracts embedder-specific logic behind a SerializedNavigationDriver
interface.  It adds a content-specific Driver implementation as well as a
content-specific Builder class to convert between SerializedNavigationEntry and
content::NavigationEntry.

This CL also separates the existing unittests into multiple files, depending on
whether or not they used content classes.  It also adds new tests for the
content Driver.

[email protected]
BUG=371476
TEST=No visible impact.

Review URL: https://codereview.chromium.org/671733002

Cr-Commit-Position: refs/heads/master@{#300756}
diff --git a/components/sessions/sessions_export.h b/components/sessions/sessions_export.h
index 66ac822..f307101 100644
--- a/components/sessions/sessions_export.h
+++ b/components/sessions/sessions_export.h
@@ -10,20 +10,25 @@
 
 #if defined(SESSIONS_IMPLEMENTATION)
 #define SESSIONS_EXPORT __declspec(dllexport)
+#define SESSIONS_EXPORT_PRIVATE __declspec(dllexport)
 #else
 #define SESSIONS_EXPORT __declspec(dllimport)
-#endif  // defined(BASE_PREFS_IMPLEMENTATION)
+#define SESSIONS_EXPORT_PRIVATE __declspec(dllimport)
+#endif  // defined(SESSIONS_IMPLEMENTATION)
 
 #else  // defined(WIN32)
 #if defined(SESSIONS_IMPLEMENTATION)
 #define SESSIONS_EXPORT __attribute__((visibility("default")))
+#define SESSIONS_EXPORT_PRIVATE __attribute__((visibility("default")))
 #else
 #define SESSIONS_EXPORT
+#define SESSIONS_EXPORT_PRIVATE
 #endif
 #endif
 
 #else  // defined(COMPONENT_BUILD)
 #define SESSIONS_EXPORT
+#define SESSIONS_EXPORT_PRIVATE
 #endif
 
 #endif  // COMPONENTS_SESSIONS_SESSIONS_EXPORT_H_