Componentize the bad clock blocking page
This breaks the former BadClockBlockingPage into three parts:
1. security_interstitials::BadClockUI handles strings and commands.
2. security_interstitials::ControllerClient abstracts the functionality
provided by the embedder to act on commands. ChromeControllerClient
implements this functionality for Chrome. BadClockUI has a
ControllerClient to ask to do its bidding.
3. BadClockBlockingPage implements InterstitialPageDelegate and has a
BadClockUI, which it asks to handle strings, commands, and everything
else not platform-specific.
(BadClockBlockingPage has a BadClockUI has a ControllerClient.)
Other embedders will:
- make their own analogs to the BadClockBlockingPage
- implement their own PlatformControllerClient that inherits from
ControllerClient
- share the BadClockUI class
I also added security_interstitials::common_string_utils to hold string-
manipulation methods that I expect to reuse in the future for other
classes that are componentized.
BUG=488673
Review URL: https://codereview.chromium.org/1481213003
Cr-Commit-Position: refs/heads/master@{#362897}
17 files changed