Start unifying document-mode and tabbed-mode tab creation
* TabDelegate, which is used to create tabs in document-mode
now subclasses the TabCreator class that tabbed-mode uses.
* Being consolidating methods for creating tabs in the TabDelegate
class.
- Various methods for opening new Tabs under specific conditions
(e.g. for devtools, or for opening an NTP) in document mode are
cleaned up.
- DocumentActivity's SingleTabModelSelector now defers to the
DocumentTabModelSelector when opening new Tabs.
- DocumentTabModelImpl uses generic methods in TabDelegate to
create Tabs as similarly as possible to the TabModelImpl.
In contrast to how TabModelImpl works with
ChromeTabbedActivity, the DocumentTabModel has no specific
Activity to grab TabCreators from. Instead, the
DocumentTabModelSelector becomes a TabCreatorManager and
passes out its TabCreators when necessary.
* TabCreator.createFrozenTab now returns a Tab to line up with how
document mode creates frozen tabs.
* DocumentTabChromeWebContentsDelegateAndroidImpl no longer stores
a mapping between the WebContents' URL and its native pointer.
Instead, the URL is grabbed via JNI before the new Activity is
launched.
BUG=451453
Review URL: https://codereview.chromium.org/
1176943002
Cr-Commit-Position: refs/heads/master@{#334098}