Introduce lock screen app context to extension features

The context will be used for platform apps that are runnable
on Chrome OS lock screen - the context will be derived from the
containing browser process. Apps running in sign-in profile after
the user was logged in will run in 'lock screen' script context.
Because sign-in profile is Chrome concept, unknown to extensions
layer, the information will have to be relayed to extensions system.
The script context is determined in two places:
* ScriptContextSet, which determines script context used in the render
  process. The script context set will be flagged as lock screen
  context during renderer initialization - it will be sent from the
  browser process in SetSessionInfo IPC message.
* ProcessMap, used in browser process. ProcessMaps are created per
  browser context - process maps belonging to sign-in profile will be
  marked as lock screen context process map (as before that point, the
  sign-in profile will be used for login)

BUG=715781

Review-Url: https://codereview.chromium.org/2892403002
Cr-Commit-Position: refs/heads/master@{#478506}
diff --git a/extensions/browser/test_extensions_browser_client.h b/extensions/browser/test_extensions_browser_client.h
index ee572fa..b052034d 100644
--- a/extensions/browser/test_extensions_browser_client.h
+++ b/extensions/browser/test_extensions_browser_client.h
@@ -113,6 +113,7 @@
   KioskDelegate* GetKioskDelegate() override;
   scoped_refptr<update_client::UpdateClient> CreateUpdateClient(
       content::BrowserContext* context) override;
+  bool IsLockScreenContext(content::BrowserContext* context) override;
 
   ExtensionSystemProvider* extension_system_factory() {
     return extension_system_factory_;