Commit a60a2e6a authored by sangwoo.ko's avatar sangwoo.ko Committed by Commit Bot

Use TabStripModelObserver's new API in chrome/browser/extensions

Replace old API with new API. In order to do this, changed
the API a little bit.

* Notify before deleting web conents when tabs are closed.
* Pass TabStripModel* in OnTabStripModelChanged().

This CL has no intended behavior change. Reordered methods
definitions so that they match with declarartion order.

Change-Id: I704cfb3418d06a7539096307aefab916338c65e9
Bug: 842194
Reviewed-on: https://chromium-review.googlesource.com/1171963
Commit-Queue: Sang Woo Ko <sangwoo108@chromium.org>
Reviewed-by: default avatarErik Chen <erikchen@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582840}
parent cbfffdd5
...@@ -16,6 +16,7 @@ DevToolsAutoOpener::~DevToolsAutoOpener() { ...@@ -16,6 +16,7 @@ DevToolsAutoOpener::~DevToolsAutoOpener() {
} }
void DevToolsAutoOpener::OnTabStripModelChanged( void DevToolsAutoOpener::OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change, const TabStripModelChange& change,
const TabStripSelectionChange& selection) { const TabStripSelectionChange& selection) {
if (change.type() != TabStripModelChange::kInserted) if (change.type() != TabStripModelChange::kInserted)
......
...@@ -16,6 +16,7 @@ class DevToolsAutoOpener : public TabStripModelObserver { ...@@ -16,6 +16,7 @@ class DevToolsAutoOpener : public TabStripModelObserver {
private: private:
// TabStripModelObserver overrides. // TabStripModelObserver overrides.
void OnTabStripModelChanged( void OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change, const TabStripModelChange& change,
const TabStripSelectionChange& selection) override; const TabStripSelectionChange& selection) override;
......
...@@ -178,6 +178,7 @@ GlobalConfirmInfoBar::~GlobalConfirmInfoBar() { ...@@ -178,6 +178,7 @@ GlobalConfirmInfoBar::~GlobalConfirmInfoBar() {
} }
void GlobalConfirmInfoBar::OnTabStripModelChanged( void GlobalConfirmInfoBar::OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change, const TabStripModelChange& change,
const TabStripSelectionChange& selection) { const TabStripSelectionChange& selection) {
if (change.type() != TabStripModelChange::kInserted) if (change.type() != TabStripModelChange::kInserted)
......
...@@ -44,6 +44,7 @@ class GlobalConfirmInfoBar : public TabStripModelObserver, ...@@ -44,6 +44,7 @@ class GlobalConfirmInfoBar : public TabStripModelObserver,
// TabStripModelObserver: // TabStripModelObserver:
void OnTabStripModelChanged( void OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change, const TabStripModelChange& change,
const TabStripSelectionChange& selection) override; const TabStripSelectionChange& selection) override;
void TabChangedAt(content::WebContents* web_contents, void TabChangedAt(content::WebContents* web_contents,
......
...@@ -54,32 +54,14 @@ class TabsEventRouter : public TabStripModelObserver, ...@@ -54,32 +54,14 @@ class TabsEventRouter : public TabStripModelObserver,
void OnBrowserSetLastActive(Browser* browser) override; void OnBrowserSetLastActive(Browser* browser) override;
// TabStripModelObserver: // TabStripModelObserver:
void TabInsertedAt(TabStripModel* tab_strip_model, void OnTabStripModelChanged(
content::WebContents* contents, TabStripModel* tab_strip_model,
int index, const TabStripModelChange& change,
bool active) override; const TabStripSelectionChange& selection) override;
void TabClosingAt(TabStripModel* tab_strip_model,
content::WebContents* contents,
int index) override;
void TabDetachedAt(content::WebContents* contents,
int index,
bool was_active) override;
void ActiveTabChanged(content::WebContents* old_contents,
content::WebContents* new_contents,
int index,
int reason) override;
void TabSelectionChanged(TabStripModel* tab_strip_model,
const ui::ListSelectionModel& old_model) override;
void TabMoved(content::WebContents* contents,
int from_index,
int to_index) override;
void TabChangedAt(content::WebContents* contents, void TabChangedAt(content::WebContents* contents,
int index, int index,
TabChangeType change_type) override; TabChangeType change_type) override;
void TabReplacedAt(TabStripModel* tab_strip_model,
content::WebContents* old_contents,
content::WebContents* new_contents,
int index) override;
void TabPinnedStateChanged(TabStripModel* tab_strip_model, void TabPinnedStateChanged(TabStripModel* tab_strip_model,
content::WebContents* contents, content::WebContents* contents,
int index) override; int index) override;
...@@ -102,7 +84,32 @@ class TabsEventRouter : public TabStripModelObserver, ...@@ -102,7 +84,32 @@ class TabsEventRouter : public TabStripModelObserver,
bool is_auto_discardable) override; bool is_auto_discardable) override;
private: private:
// "Synthetic" event. Called from TabInsertedAt if new tab is detected. // Methods called from OnTabStripModelChanged.
void DispatchTabInsertedAt(TabStripModel* tab_strip_model,
content::WebContents* contents,
int index,
bool active);
void DispatchTabClosingAt(TabStripModel* tab_strip_model,
content::WebContents* contents,
int index);
void DispatchTabDetachedAt(content::WebContents* contents,
int index,
bool was_active);
void DispatchActiveTabChanged(content::WebContents* old_contents,
content::WebContents* new_contents,
int index,
int reason);
void DispatchTabSelectionChanged(TabStripModel* tab_strip_model,
const ui::ListSelectionModel& old_model);
void DispatchTabMoved(content::WebContents* contents,
int from_index,
int to_index);
void DispatchTabReplacedAt(content::WebContents* old_contents,
content::WebContents* new_contents,
int index);
// "Synthetic" event. Called from DispatchTabInsertedAt if new tab is
// detected.
void TabCreatedAt(content::WebContents* contents, int index, bool active); void TabCreatedAt(content::WebContents* contents, int index, bool active);
// Internal processing of tab updated events. Intended to be called when // Internal processing of tab updated events. Intended to be called when
...@@ -123,12 +130,6 @@ class TabsEventRouter : public TabStripModelObserver, ...@@ -123,12 +130,6 @@ class TabsEventRouter : public TabStripModelObserver,
std::unique_ptr<base::ListValue> args, std::unique_ptr<base::ListValue> args,
EventRouter::UserGestureState user_gesture); EventRouter::UserGestureState user_gesture);
void DispatchEventsAcrossIncognito(
Profile* profile,
const std::string& event_name,
std::unique_ptr<base::ListValue> event_args,
std::unique_ptr<base::ListValue> cross_incognito_args);
// Packages |changed_property_names| as a tab updated event for the tab // Packages |changed_property_names| as a tab updated event for the tab
// |contents| and dispatches the event to the extension. // |contents| and dispatches the event to the extension.
void DispatchTabUpdatedEvent( void DispatchTabUpdatedEvent(
......
...@@ -83,7 +83,8 @@ void BrowserTabStripTracker::MaybeTrackBrowser(Browser* browser) { ...@@ -83,7 +83,8 @@ void BrowserTabStripTracker::MaybeTrackBrowser(Browser* browser) {
TabStripModelChange change(TabStripModelChange::kInserted, deltas); TabStripModelChange change(TabStripModelChange::kInserted, deltas);
TabStripSelectionChange selection(tab_strip_model->GetActiveWebContents(), TabStripSelectionChange selection(tab_strip_model->GetActiveWebContents(),
tab_strip_model->selection_model()); tab_strip_model->selection_model());
tab_strip_model_observer_->OnTabStripModelChanged(change, selection); tab_strip_model_observer_->OnTabStripModelChanged(tab_strip_model, change,
selection);
} }
void BrowserTabStripTracker::OnBrowserAdded(Browser* browser) { void BrowserTabStripTracker::OnBrowserAdded(Browser* browser) {
......
...@@ -358,7 +358,7 @@ void TabStripModel::InsertWebContentsAt(int index, ...@@ -358,7 +358,7 @@ void TabStripModel::InsertWebContentsAt(int index,
TabStripModelChange::kInserted, TabStripModelChange::kInserted,
TabStripModelChange::CreateInsertDelta(raw_contents, index)); TabStripModelChange::CreateInsertDelta(raw_contents, index));
for (auto& observer : observers_) for (auto& observer : observers_)
observer.OnTabStripModelChanged(change, selection); observer.OnTabStripModelChanged(this, change, selection);
} }
std::unique_ptr<content::WebContents> TabStripModel::ReplaceWebContentsAt( std::unique_ptr<content::WebContents> TabStripModel::ReplaceWebContentsAt(
...@@ -395,7 +395,7 @@ std::unique_ptr<content::WebContents> TabStripModel::ReplaceWebContentsAt( ...@@ -395,7 +395,7 @@ std::unique_ptr<content::WebContents> TabStripModel::ReplaceWebContentsAt(
TabStripModelChange::CreateReplaceDelta( TabStripModelChange::CreateReplaceDelta(
old_contents.get(), raw_new_contents, index)); old_contents.get(), raw_new_contents, index));
for (auto& observer : observers_) for (auto& observer : observers_)
observer.OnTabStripModelChanged(change, selection); observer.OnTabStripModelChanged(this, change, selection);
return old_contents; return old_contents;
} }
...@@ -514,6 +514,10 @@ void TabStripModel::SendDetachWebContentsNotifications( ...@@ -514,6 +514,10 @@ void TabStripModel::SendDetachWebContentsNotifications(
selection.new_model = selection_model_; selection.new_model = selection_model_;
selection.reason = TabStripModelObserver::CHANGE_REASON_NONE; selection.reason = TabStripModelObserver::CHANGE_REASON_NONE;
TabStripModelChange change(TabStripModelChange::kRemoved, deltas);
for (auto& observer : observers_)
observer.OnTabStripModelChanged(this, change, selection);
for (auto& dwc : notifications->detached_web_contents) { for (auto& dwc : notifications->detached_web_contents) {
if (notifications->selection_model.IsSelected( if (notifications->selection_model.IsSelected(
dwc->index_before_any_removals)) { dwc->index_before_any_removals)) {
...@@ -547,10 +551,6 @@ void TabStripModel::SendDetachWebContentsNotifications( ...@@ -547,10 +551,6 @@ void TabStripModel::SendDetachWebContentsNotifications(
for (auto& observer : observers_) for (auto& observer : observers_)
observer.TabStripEmpty(); observer.TabStripEmpty();
} }
TabStripModelChange change(TabStripModelChange::kRemoved, deltas);
for (auto& observer : observers_)
observer.OnTabStripModelChanged(change, selection);
} }
void TabStripModel::ActivateTabAt(int index, bool user_gesture) { void TabStripModel::ActivateTabAt(int index, bool user_gesture) {
...@@ -1529,7 +1529,7 @@ TabStripSelectionChange TabStripModel::SetSelection( ...@@ -1529,7 +1529,7 @@ TabStripSelectionChange TabStripModel::SetSelection(
(selection.active_tab_changed() || selection.selection_changed())) { (selection.active_tab_changed() || selection.selection_changed())) {
TabStripModelChange change; TabStripModelChange change;
for (auto& observer : observers_) for (auto& observer : observers_)
observer.OnTabStripModelChanged(change, selection); observer.OnTabStripModelChanged(this, change, selection);
} }
return selection; return selection;
...@@ -1575,7 +1575,7 @@ void TabStripModel::MoveWebContentsAtImpl(int index, ...@@ -1575,7 +1575,7 @@ void TabStripModel::MoveWebContentsAtImpl(int index,
TabStripModelChange::kMoved, TabStripModelChange::kMoved,
TabStripModelChange::CreateMoveDelta(web_contents, index, to_position)); TabStripModelChange::CreateMoveDelta(web_contents, index, to_position));
for (auto& observer : observers_) for (auto& observer : observers_)
observer.OnTabStripModelChanged(change, selection); observer.OnTabStripModelChanged(this, change, selection);
} }
void TabStripModel::MoveSelectedTabsToImpl(int index, void TabStripModel::MoveSelectedTabsToImpl(int index,
......
...@@ -74,6 +74,7 @@ TabStripModelObserver::TabStripModelObserver() { ...@@ -74,6 +74,7 @@ TabStripModelObserver::TabStripModelObserver() {
} }
void TabStripModelObserver::OnTabStripModelChanged( void TabStripModelObserver::OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change, const TabStripModelChange& change,
const TabStripSelectionChange& selection) {} const TabStripSelectionChange& selection) {}
......
...@@ -173,7 +173,8 @@ class TabStripModelObserver { ...@@ -173,7 +173,8 @@ class TabStripModelObserver {
// TabStripModel before the |change| and after the |change| are applied. // TabStripModel before the |change| and after the |change| are applied.
// When only selection/activation was changed without any change about // When only selection/activation was changed without any change about
// WebContents, |change| can be empty. // WebContents, |change| can be empty.
virtual void OnTabStripModelChanged(const TabStripModelChange& change, virtual void OnTabStripModelChanged(TabStripModel* tab_strip_model,
const TabStripModelChange& change,
const TabStripSelectionChange& selection); const TabStripSelectionChange& selection);
// A new WebContents was inserted into the TabStripModel at the // A new WebContents was inserted into the TabStripModel at the
......
...@@ -377,6 +377,7 @@ class NewTabStripModelObserver : public MockTabStripModelObserver { ...@@ -377,6 +377,7 @@ class NewTabStripModelObserver : public MockTabStripModelObserver {
// TabStripModelObserver implementation: // TabStripModelObserver implementation:
void OnTabStripModelChanged( void OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change, const TabStripModelChange& change,
const TabStripSelectionChange& selection) override { const TabStripSelectionChange& selection) override {
switch (change.type()) { switch (change.type()) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment