| Index: chrome/browser/ui/zoom/zoom_controller.cc
|
| diff --git a/chrome/browser/ui/zoom/zoom_controller.cc b/chrome/browser/ui/zoom/zoom_controller.cc
|
| index f39575b31d292bd6daee14197a1e144534705310..53def6459835c0c2f1e7e79b9f4221db4216df1f 100644
|
| --- a/chrome/browser/ui/zoom/zoom_controller.cc
|
| +++ b/chrome/browser/ui/zoom/zoom_controller.cc
|
| @@ -125,8 +125,8 @@ bool ZoomController::SetZoomLevelByExtension(
|
| content::HostZoomMap* zoom_map =
|
| content::HostZoomMap::GetForBrowserContext(browser_context_);
|
| DCHECK(zoom_map);
|
| - DCHECK(event_data_.empty());
|
| - event_data_.push_back(ZoomChangedEventData(web_contents(),
|
| + DCHECK(!event_data_);
|
| + event_data_.reset(new ZoomChangedEventData(web_contents(),
|
| GetZoomLevel(),
|
| zoom_level,
|
| zoom_mode_,
|
| @@ -149,7 +149,7 @@ bool ZoomController::SetZoomLevelByExtension(
|
| zoom_map->SetZoomLevelForHost(host, zoom_level);
|
| }
|
|
|
| - DCHECK(event_data_.empty());
|
| + DCHECK(!event_data_);
|
| last_extension_ = NULL;
|
| return true;
|
| }
|
| @@ -165,13 +165,12 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) {
|
| int render_view_id = web_contents()->GetRenderViewHost()->GetRoutingID();
|
| double original_zoom_level = GetZoomLevel();
|
|
|
| - ZoomChangedEventData zoom_change_data(web_contents(),
|
| - original_zoom_level,
|
| - original_zoom_level,
|
| - new_mode,
|
| - new_mode != ZOOM_MODE_DEFAULT);
|
| - DCHECK(event_data_.empty());
|
| - event_data_.push_back(zoom_change_data);
|
| + DCHECK(!event_data_);
|
| + event_data_.reset(new ZoomChangedEventData(web_contents(),
|
| + original_zoom_level,
|
| + original_zoom_level,
|
| + new_mode,
|
| + new_mode != ZOOM_MODE_DEFAULT));
|
|
|
| switch (new_mode) {
|
| case ZOOM_MODE_DEFAULT: {
|
| @@ -189,7 +188,7 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) {
|
| // the correct zoom level.
|
| double origin_zoom_level =
|
| zoom_map->GetZoomLevelForHostAndScheme(url.scheme(), host);
|
| - event_data_.back().new_zoom_level = origin_zoom_level;
|
| + event_data_->new_zoom_level = origin_zoom_level;
|
| zoom_map->SetTemporaryZoomLevel(
|
| render_process_id, render_view_id, origin_zoom_level);
|
| } else {
|
| @@ -214,8 +213,8 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) {
|
| // When we don't call any HostZoomMap set functions, we send the event
|
| // manually.
|
| FOR_EACH_OBSERVER(
|
| - ZoomObserver, observers_, OnZoomChanged(event_data_.back()));
|
| - event_data_.pop_back();
|
| + ZoomObserver, observers_, OnZoomChanged(*event_data_));
|
| + event_data_.reset();
|
| }
|
| break;
|
| }
|
| @@ -231,8 +230,8 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) {
|
| // When we don't call any HostZoomMap set functions, we send the event
|
| // manually.
|
| FOR_EACH_OBSERVER(
|
| - ZoomObserver, observers_, OnZoomChanged(event_data_.back()));
|
| - event_data_.pop_back();
|
| + ZoomObserver, observers_, OnZoomChanged(*event_data_));
|
| + event_data_.reset();
|
| }
|
| break;
|
| }
|
| @@ -244,7 +243,7 @@ void ZoomController::SetZoomMode(ZoomMode new_mode) {
|
| }
|
| }
|
| // Any event data we've stored should have been consumed by this point.
|
| - DCHECK(event_data_.empty());
|
| + DCHECK(!event_data_);
|
|
|
| zoom_mode_ = new_mode;
|
| }
|
| @@ -288,11 +287,11 @@ void ZoomController::UpdateStateIncludingTemporary(const std::string& host,
|
| bool can_show_bubble =
|
| zoom_mode_ != ZOOM_MODE_DEFAULT || (!host.empty() && !is_temporary_zoom);
|
|
|
| - if (!event_data_.empty()) {
|
| + if (event_data_) {
|
| // For state changes initiated within the ZoomController, information about
|
| // the change should be sent.
|
| - ZoomChangedEventData zoom_change_data = event_data_.back();
|
| - event_data_.pop_back();
|
| + ZoomChangedEventData zoom_change_data = *event_data_;
|
| + event_data_.reset();
|
| zoom_change_data.can_show_bubble |= can_show_bubble;
|
| FOR_EACH_OBSERVER(
|
| ZoomObserver, observers_, OnZoomChanged(zoom_change_data));
|
| @@ -300,7 +299,7 @@ void ZoomController::UpdateStateIncludingTemporary(const std::string& host,
|
| // TODO(wjmaclean) Should we consider having HostZoomMap send both old and
|
| // new zoom levels here?
|
| double zoom_level = GetZoomLevel();
|
| - ZoomChangedEventData zoom_change_data = ZoomChangedEventData(
|
| + ZoomChangedEventData zoom_change_data(
|
| web_contents(), zoom_level, zoom_level, zoom_mode_, can_show_bubble);
|
| FOR_EACH_OBSERVER(
|
| ZoomObserver, observers_, OnZoomChanged(zoom_change_data));
|
|
|