Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: chrome/browser/extensions/api/tabs/tabs_event_router.cc

Issue 2030013003: Remove ListValue::Append(new {Fundamental,String}Value(...)) pattern in //chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/tabs/tabs_event_router.h" 5 #include "chrome/browser/extensions/api/tabs/tabs_event_router.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 // constructor. 221 // constructor.
222 if (browser_tab_strip_tracker_.is_processing_initial_browsers()) 222 if (browser_tab_strip_tracker_.is_processing_initial_browsers())
223 RegisterForTabNotifications(contents); 223 RegisterForTabNotifications(contents);
224 else 224 else
225 TabCreatedAt(contents, index, active); 225 TabCreatedAt(contents, index, active);
226 return; 226 return;
227 } 227 }
228 228
229 int tab_id = ExtensionTabUtil::GetTabId(contents); 229 int tab_id = ExtensionTabUtil::GetTabId(contents);
230 std::unique_ptr<base::ListValue> args(new base::ListValue); 230 std::unique_ptr<base::ListValue> args(new base::ListValue);
231 args->Append(new FundamentalValue(tab_id)); 231 args->AppendInteger(tab_id);
232 232
233 base::DictionaryValue* object_args = new base::DictionaryValue(); 233 base::DictionaryValue* object_args = new base::DictionaryValue();
234 object_args->Set(tabs_constants::kNewWindowIdKey, 234 object_args->Set(tabs_constants::kNewWindowIdKey,
235 new FundamentalValue( 235 new FundamentalValue(
236 ExtensionTabUtil::GetWindowIdOfTab(contents))); 236 ExtensionTabUtil::GetWindowIdOfTab(contents)));
237 object_args->Set(tabs_constants::kNewPositionKey, 237 object_args->Set(tabs_constants::kNewPositionKey,
238 new FundamentalValue(index)); 238 new FundamentalValue(index));
239 args->Append(object_args); 239 args->Append(object_args);
240 240
241 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); 241 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
242 DispatchEvent(profile, events::TABS_ON_ATTACHED, tabs::OnAttached::kEventName, 242 DispatchEvent(profile, events::TABS_ON_ATTACHED, tabs::OnAttached::kEventName,
243 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 243 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
244 } 244 }
245 245
246 void TabsEventRouter::TabDetachedAt(WebContents* contents, int index) { 246 void TabsEventRouter::TabDetachedAt(WebContents* contents, int index) {
247 if (!GetTabEntry(contents)) { 247 if (!GetTabEntry(contents)) {
248 // The tab was removed. Don't send detach event. 248 // The tab was removed. Don't send detach event.
249 return; 249 return;
250 } 250 }
251 251
252 std::unique_ptr<base::ListValue> args(new base::ListValue); 252 std::unique_ptr<base::ListValue> args(new base::ListValue);
253 args->Append( 253 args->AppendInteger(ExtensionTabUtil::GetTabId(contents));
254 new FundamentalValue(ExtensionTabUtil::GetTabId(contents)));
255 254
256 base::DictionaryValue* object_args = new base::DictionaryValue(); 255 base::DictionaryValue* object_args = new base::DictionaryValue();
257 object_args->Set(tabs_constants::kOldWindowIdKey, 256 object_args->Set(tabs_constants::kOldWindowIdKey,
258 new FundamentalValue( 257 new FundamentalValue(
259 ExtensionTabUtil::GetWindowIdOfTab(contents))); 258 ExtensionTabUtil::GetWindowIdOfTab(contents)));
260 object_args->Set(tabs_constants::kOldPositionKey, 259 object_args->Set(tabs_constants::kOldPositionKey,
261 new FundamentalValue(index)); 260 new FundamentalValue(index));
262 args->Append(object_args); 261 args->Append(object_args);
263 262
264 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); 263 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
265 DispatchEvent(profile, events::TABS_ON_DETACHED, tabs::OnDetached::kEventName, 264 DispatchEvent(profile, events::TABS_ON_DETACHED, tabs::OnDetached::kEventName,
266 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 265 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
267 } 266 }
268 267
269 void TabsEventRouter::TabClosingAt(TabStripModel* tab_strip_model, 268 void TabsEventRouter::TabClosingAt(TabStripModel* tab_strip_model,
270 WebContents* contents, 269 WebContents* contents,
271 int index) { 270 int index) {
272 int tab_id = ExtensionTabUtil::GetTabId(contents); 271 int tab_id = ExtensionTabUtil::GetTabId(contents);
273 272
274 std::unique_ptr<base::ListValue> args(new base::ListValue); 273 std::unique_ptr<base::ListValue> args(new base::ListValue);
275 args->Append(new FundamentalValue(tab_id)); 274 args->AppendInteger(tab_id);
276 275
277 base::DictionaryValue* object_args = new base::DictionaryValue(); 276 base::DictionaryValue* object_args = new base::DictionaryValue();
278 object_args->SetInteger(tabs_constants::kWindowIdKey, 277 object_args->SetInteger(tabs_constants::kWindowIdKey,
279 ExtensionTabUtil::GetWindowIdOfTab(contents)); 278 ExtensionTabUtil::GetWindowIdOfTab(contents));
280 object_args->SetBoolean(tabs_constants::kWindowClosing, 279 object_args->SetBoolean(tabs_constants::kWindowClosing,
281 tab_strip_model->closing_all()); 280 tab_strip_model->closing_all());
282 args->Append(object_args); 281 args->Append(object_args);
283 282
284 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); 283 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
285 DispatchEvent(profile, events::TABS_ON_REMOVED, tabs::OnRemoved::kEventName, 284 DispatchEvent(profile, events::TABS_ON_REMOVED, tabs::OnRemoved::kEventName,
286 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 285 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
287 286
288 UnregisterForTabNotifications(contents); 287 UnregisterForTabNotifications(contents);
289 } 288 }
290 289
291 void TabsEventRouter::ActiveTabChanged(WebContents* old_contents, 290 void TabsEventRouter::ActiveTabChanged(WebContents* old_contents,
292 WebContents* new_contents, 291 WebContents* new_contents,
293 int index, 292 int index,
294 int reason) { 293 int reason) {
295 std::unique_ptr<base::ListValue> args(new base::ListValue); 294 std::unique_ptr<base::ListValue> args(new base::ListValue);
296 int tab_id = ExtensionTabUtil::GetTabId(new_contents); 295 int tab_id = ExtensionTabUtil::GetTabId(new_contents);
297 args->Append(new FundamentalValue(tab_id)); 296 args->AppendInteger(tab_id);
298 297
299 base::DictionaryValue* object_args = new base::DictionaryValue(); 298 base::DictionaryValue* object_args = new base::DictionaryValue();
300 object_args->Set(tabs_constants::kWindowIdKey, 299 object_args->Set(tabs_constants::kWindowIdKey,
301 new FundamentalValue( 300 new FundamentalValue(
302 ExtensionTabUtil::GetWindowIdOfTab(new_contents))); 301 ExtensionTabUtil::GetWindowIdOfTab(new_contents)));
303 args->Append(object_args); 302 args->Append(object_args);
304 303
305 // The onActivated event replaced onActiveChanged and onSelectionChanged. The 304 // The onActivated event replaced onActiveChanged and onSelectionChanged. The
306 // deprecated events take two arguments: tabId, {windowId}. 305 // deprecated events take two arguments: tabId, {windowId}.
307 Profile* profile = 306 Profile* profile =
(...skipping 23 matching lines...) Expand all
331 ui::ListSelectionModel::SelectedIndices new_selection = 330 ui::ListSelectionModel::SelectedIndices new_selection =
332 tab_strip_model->selection_model().selected_indices(); 331 tab_strip_model->selection_model().selected_indices();
333 std::unique_ptr<base::ListValue> all_tabs(new base::ListValue); 332 std::unique_ptr<base::ListValue> all_tabs(new base::ListValue);
334 333
335 for (size_t i = 0; i < new_selection.size(); ++i) { 334 for (size_t i = 0; i < new_selection.size(); ++i) {
336 int index = new_selection[i]; 335 int index = new_selection[i];
337 WebContents* contents = tab_strip_model->GetWebContentsAt(index); 336 WebContents* contents = tab_strip_model->GetWebContentsAt(index);
338 if (!contents) 337 if (!contents)
339 break; 338 break;
340 int tab_id = ExtensionTabUtil::GetTabId(contents); 339 int tab_id = ExtensionTabUtil::GetTabId(contents);
341 all_tabs->Append(new FundamentalValue(tab_id)); 340 all_tabs->AppendInteger(tab_id);
342 } 341 }
343 342
344 std::unique_ptr<base::ListValue> args(new base::ListValue); 343 std::unique_ptr<base::ListValue> args(new base::ListValue);
345 std::unique_ptr<base::DictionaryValue> select_info(new base::DictionaryValue); 344 std::unique_ptr<base::DictionaryValue> select_info(new base::DictionaryValue);
346 345
347 select_info->Set( 346 select_info->Set(
348 tabs_constants::kWindowIdKey, 347 tabs_constants::kWindowIdKey,
349 new FundamentalValue( 348 new FundamentalValue(
350 ExtensionTabUtil::GetWindowIdOfTabStripModel(tab_strip_model))); 349 ExtensionTabUtil::GetWindowIdOfTabStripModel(tab_strip_model)));
351 350
352 select_info->Set(tabs_constants::kTabIdsKey, all_tabs.release()); 351 select_info->Set(tabs_constants::kTabIdsKey, all_tabs.release());
353 args->Append(select_info.release()); 352 args->Append(select_info.release());
354 353
355 // The onHighlighted event replaced onHighlightChanged. 354 // The onHighlighted event replaced onHighlightChanged.
356 Profile* profile = tab_strip_model->profile(); 355 Profile* profile = tab_strip_model->profile();
357 DispatchEvent(profile, events::TABS_ON_HIGHLIGHT_CHANGED, 356 DispatchEvent(profile, events::TABS_ON_HIGHLIGHT_CHANGED,
358 tabs::OnHighlightChanged::kEventName, 357 tabs::OnHighlightChanged::kEventName,
359 std::unique_ptr<base::ListValue>(args->DeepCopy()), 358 std::unique_ptr<base::ListValue>(args->DeepCopy()),
360 EventRouter::USER_GESTURE_UNKNOWN); 359 EventRouter::USER_GESTURE_UNKNOWN);
361 DispatchEvent(profile, events::TABS_ON_HIGHLIGHTED, 360 DispatchEvent(profile, events::TABS_ON_HIGHLIGHTED,
362 tabs::OnHighlighted::kEventName, std::move(args), 361 tabs::OnHighlighted::kEventName, std::move(args),
363 EventRouter::USER_GESTURE_UNKNOWN); 362 EventRouter::USER_GESTURE_UNKNOWN);
364 } 363 }
365 364
366 void TabsEventRouter::TabMoved(WebContents* contents, 365 void TabsEventRouter::TabMoved(WebContents* contents,
367 int from_index, 366 int from_index,
368 int to_index) { 367 int to_index) {
369 std::unique_ptr<base::ListValue> args(new base::ListValue); 368 std::unique_ptr<base::ListValue> args(new base::ListValue);
370 args->Append( 369 args->AppendInteger(ExtensionTabUtil::GetTabId(contents));
371 new FundamentalValue(ExtensionTabUtil::GetTabId(contents)));
372 370
373 base::DictionaryValue* object_args = new base::DictionaryValue(); 371 base::DictionaryValue* object_args = new base::DictionaryValue();
374 object_args->Set(tabs_constants::kWindowIdKey, 372 object_args->Set(tabs_constants::kWindowIdKey,
375 new FundamentalValue( 373 new FundamentalValue(
376 ExtensionTabUtil::GetWindowIdOfTab(contents))); 374 ExtensionTabUtil::GetWindowIdOfTab(contents)));
377 object_args->Set(tabs_constants::kFromIndexKey, 375 object_args->Set(tabs_constants::kFromIndexKey,
378 new FundamentalValue(from_index)); 376 new FundamentalValue(from_index));
379 object_args->Set(tabs_constants::kToIndexKey, 377 object_args->Set(tabs_constants::kToIndexKey,
380 new FundamentalValue(to_index)); 378 new FundamentalValue(to_index));
381 args->Append(object_args); 379 args->Append(object_args);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 477
480 void TabsEventRouter::TabReplacedAt(TabStripModel* tab_strip_model, 478 void TabsEventRouter::TabReplacedAt(TabStripModel* tab_strip_model,
481 WebContents* old_contents, 479 WebContents* old_contents,
482 WebContents* new_contents, 480 WebContents* new_contents,
483 int index) { 481 int index) {
484 // Notify listeners that the next tabs closing or being added are due to 482 // Notify listeners that the next tabs closing or being added are due to
485 // WebContents being swapped. 483 // WebContents being swapped.
486 const int new_tab_id = ExtensionTabUtil::GetTabId(new_contents); 484 const int new_tab_id = ExtensionTabUtil::GetTabId(new_contents);
487 const int old_tab_id = ExtensionTabUtil::GetTabId(old_contents); 485 const int old_tab_id = ExtensionTabUtil::GetTabId(old_contents);
488 std::unique_ptr<base::ListValue> args(new base::ListValue); 486 std::unique_ptr<base::ListValue> args(new base::ListValue);
489 args->Append(new FundamentalValue(new_tab_id)); 487 args->AppendInteger(new_tab_id);
490 args->Append(new FundamentalValue(old_tab_id)); 488 args->AppendInteger(old_tab_id);
491 489
492 DispatchEvent(Profile::FromBrowserContext(new_contents->GetBrowserContext()), 490 DispatchEvent(Profile::FromBrowserContext(new_contents->GetBrowserContext()),
493 events::TABS_ON_REPLACED, tabs::OnReplaced::kEventName, 491 events::TABS_ON_REPLACED, tabs::OnReplaced::kEventName,
494 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 492 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
495 493
496 UnregisterForTabNotifications(old_contents); 494 UnregisterForTabNotifications(old_contents);
497 495
498 if (!GetTabEntry(new_contents)) 496 if (!GetTabEntry(new_contents))
499 RegisterForTabNotifications(new_contents); 497 RegisterForTabNotifications(new_contents);
500 } 498 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 bool icon_url_changed, 541 bool icon_url_changed,
544 const gfx::Image& image) { 542 const gfx::Image& image) {
545 if (notification_icon_type == NON_TOUCH_16_DIP && icon_url_changed) { 543 if (notification_icon_type == NON_TOUCH_16_DIP && icon_url_changed) {
546 favicon::ContentFaviconDriver* content_favicon_driver = 544 favicon::ContentFaviconDriver* content_favicon_driver =
547 static_cast<favicon::ContentFaviconDriver*>(favicon_driver); 545 static_cast<favicon::ContentFaviconDriver*>(favicon_driver);
548 FaviconUrlUpdated(content_favicon_driver->web_contents()); 546 FaviconUrlUpdated(content_favicon_driver->web_contents());
549 } 547 }
550 } 548 }
551 549
552 } // namespace extensions 550 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698