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

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

Issue 2476493003: Remove FundamentalValue
Patch Set: Fix Created 4 years, 1 month 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 <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 11 matching lines...) Expand all
22 #include "chrome/browser/ui/browser_list.h" 22 #include "chrome/browser/ui/browser_list.h"
23 #include "chrome/browser/ui/tabs/tab_strip_model.h" 23 #include "chrome/browser/ui/tabs/tab_strip_model.h"
24 #include "chrome/common/extensions/extension_constants.h" 24 #include "chrome/common/extensions/extension_constants.h"
25 #include "components/favicon/content/content_favicon_driver.h" 25 #include "components/favicon/content/content_favicon_driver.h"
26 #include "content/public/browser/favicon_status.h" 26 #include "content/public/browser/favicon_status.h"
27 #include "content/public/browser/navigation_entry.h" 27 #include "content/public/browser/navigation_entry.h"
28 #include "content/public/browser/web_contents.h" 28 #include "content/public/browser/web_contents.h"
29 29
30 using base::DictionaryValue; 30 using base::DictionaryValue;
31 using base::ListValue; 31 using base::ListValue;
32 using base::FundamentalValue; 32 using base::Value;
33 using content::WebContents; 33 using content::WebContents;
34 using zoom::ZoomController; 34 using zoom::ZoomController;
35 35
36 namespace extensions { 36 namespace extensions {
37 37
38 namespace { 38 namespace {
39 39
40 namespace tabs = api::tabs; 40 namespace tabs = api::tabs;
41 41
42 bool WillDispatchTabUpdatedEvent( 42 bool WillDispatchTabUpdatedEvent(
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 return; 231 return;
232 } 232 }
233 233
234 int tab_id = ExtensionTabUtil::GetTabId(contents); 234 int tab_id = ExtensionTabUtil::GetTabId(contents);
235 std::unique_ptr<base::ListValue> args(new base::ListValue); 235 std::unique_ptr<base::ListValue> args(new base::ListValue);
236 args->AppendInteger(tab_id); 236 args->AppendInteger(tab_id);
237 237
238 std::unique_ptr<base::DictionaryValue> object_args( 238 std::unique_ptr<base::DictionaryValue> object_args(
239 new base::DictionaryValue()); 239 new base::DictionaryValue());
240 object_args->Set(tabs_constants::kNewWindowIdKey, 240 object_args->Set(tabs_constants::kNewWindowIdKey,
241 new FundamentalValue( 241 new Value(
242 ExtensionTabUtil::GetWindowIdOfTab(contents))); 242 ExtensionTabUtil::GetWindowIdOfTab(contents)));
243 object_args->Set(tabs_constants::kNewPositionKey, 243 object_args->Set(tabs_constants::kNewPositionKey,
244 new FundamentalValue(index)); 244 new Value(index));
245 args->Append(std::move(object_args)); 245 args->Append(std::move(object_args));
246 246
247 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); 247 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
248 DispatchEvent(profile, events::TABS_ON_ATTACHED, tabs::OnAttached::kEventName, 248 DispatchEvent(profile, events::TABS_ON_ATTACHED, tabs::OnAttached::kEventName,
249 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 249 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
250 } 250 }
251 251
252 void TabsEventRouter::TabDetachedAt(WebContents* contents, int index) { 252 void TabsEventRouter::TabDetachedAt(WebContents* contents, int index) {
253 if (!GetTabEntry(contents)) { 253 if (!GetTabEntry(contents)) {
254 // The tab was removed. Don't send detach event. 254 // The tab was removed. Don't send detach event.
255 return; 255 return;
256 } 256 }
257 257
258 std::unique_ptr<base::ListValue> args(new base::ListValue); 258 std::unique_ptr<base::ListValue> args(new base::ListValue);
259 args->AppendInteger(ExtensionTabUtil::GetTabId(contents)); 259 args->AppendInteger(ExtensionTabUtil::GetTabId(contents));
260 260
261 std::unique_ptr<base::DictionaryValue> object_args( 261 std::unique_ptr<base::DictionaryValue> object_args(
262 new base::DictionaryValue()); 262 new base::DictionaryValue());
263 object_args->Set(tabs_constants::kOldWindowIdKey, 263 object_args->Set(tabs_constants::kOldWindowIdKey,
264 new FundamentalValue( 264 new Value(
265 ExtensionTabUtil::GetWindowIdOfTab(contents))); 265 ExtensionTabUtil::GetWindowIdOfTab(contents)));
266 object_args->Set(tabs_constants::kOldPositionKey, 266 object_args->Set(tabs_constants::kOldPositionKey,
267 new FundamentalValue(index)); 267 new Value(index));
268 args->Append(std::move(object_args)); 268 args->Append(std::move(object_args));
269 269
270 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); 270 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
271 DispatchEvent(profile, events::TABS_ON_DETACHED, tabs::OnDetached::kEventName, 271 DispatchEvent(profile, events::TABS_ON_DETACHED, tabs::OnDetached::kEventName,
272 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 272 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
273 } 273 }
274 274
275 void TabsEventRouter::TabClosingAt(TabStripModel* tab_strip_model, 275 void TabsEventRouter::TabClosingAt(TabStripModel* tab_strip_model,
276 WebContents* contents, 276 WebContents* contents,
277 int index) { 277 int index) {
(...skipping 20 matching lines...) Expand all
298 void TabsEventRouter::ActiveTabChanged(WebContents* old_contents, 298 void TabsEventRouter::ActiveTabChanged(WebContents* old_contents,
299 WebContents* new_contents, 299 WebContents* new_contents,
300 int index, 300 int index,
301 int reason) { 301 int reason) {
302 auto args = base::MakeUnique<base::ListValue>(); 302 auto args = base::MakeUnique<base::ListValue>();
303 int tab_id = ExtensionTabUtil::GetTabId(new_contents); 303 int tab_id = ExtensionTabUtil::GetTabId(new_contents);
304 args->AppendInteger(tab_id); 304 args->AppendInteger(tab_id);
305 305
306 auto object_args = base::MakeUnique<base::DictionaryValue>(); 306 auto object_args = base::MakeUnique<base::DictionaryValue>();
307 object_args->Set(tabs_constants::kWindowIdKey, 307 object_args->Set(tabs_constants::kWindowIdKey,
308 new FundamentalValue( 308 new Value(
309 ExtensionTabUtil::GetWindowIdOfTab(new_contents))); 309 ExtensionTabUtil::GetWindowIdOfTab(new_contents)));
310 args->Append(object_args->CreateDeepCopy()); 310 args->Append(object_args->CreateDeepCopy());
311 311
312 // The onActivated event replaced onActiveChanged and onSelectionChanged. The 312 // The onActivated event replaced onActiveChanged and onSelectionChanged. The
313 // deprecated events take two arguments: tabId, {windowId}. 313 // deprecated events take two arguments: tabId, {windowId}.
314 Profile* profile = 314 Profile* profile =
315 Profile::FromBrowserContext(new_contents->GetBrowserContext()); 315 Profile::FromBrowserContext(new_contents->GetBrowserContext());
316 EventRouter::UserGestureState gesture = 316 EventRouter::UserGestureState gesture =
317 reason & CHANGE_REASON_USER_GESTURE 317 reason & CHANGE_REASON_USER_GESTURE
318 ? EventRouter::USER_GESTURE_ENABLED 318 ? EventRouter::USER_GESTURE_ENABLED
319 : EventRouter::USER_GESTURE_NOT_ENABLED; 319 : EventRouter::USER_GESTURE_NOT_ENABLED;
320 DispatchEvent(profile, events::TABS_ON_SELECTION_CHANGED, 320 DispatchEvent(profile, events::TABS_ON_SELECTION_CHANGED,
321 tabs::OnSelectionChanged::kEventName, args->CreateDeepCopy(), 321 tabs::OnSelectionChanged::kEventName, args->CreateDeepCopy(),
322 gesture); 322 gesture);
323 DispatchEvent(profile, events::TABS_ON_ACTIVE_CHANGED, 323 DispatchEvent(profile, events::TABS_ON_ACTIVE_CHANGED,
324 tabs::OnActiveChanged::kEventName, std::move(args), gesture); 324 tabs::OnActiveChanged::kEventName, std::move(args), gesture);
325 325
326 // The onActivated event takes one argument: {windowId, tabId}. 326 // The onActivated event takes one argument: {windowId, tabId}.
327 auto on_activated_args = base::MakeUnique<base::ListValue>(); 327 auto on_activated_args = base::MakeUnique<base::ListValue>();
328 object_args->Set(tabs_constants::kTabIdKey, 328 object_args->Set(tabs_constants::kTabIdKey,
329 new FundamentalValue(tab_id)); 329 new Value(tab_id));
330 on_activated_args->Append(std::move(object_args)); 330 on_activated_args->Append(std::move(object_args));
331 DispatchEvent(profile, events::TABS_ON_ACTIVATED, 331 DispatchEvent(profile, events::TABS_ON_ACTIVATED,
332 tabs::OnActivated::kEventName, std::move(on_activated_args), 332 tabs::OnActivated::kEventName, std::move(on_activated_args),
333 gesture); 333 gesture);
334 } 334 }
335 335
336 void TabsEventRouter::TabSelectionChanged( 336 void TabsEventRouter::TabSelectionChanged(
337 TabStripModel* tab_strip_model, 337 TabStripModel* tab_strip_model,
338 const ui::ListSelectionModel& old_model) { 338 const ui::ListSelectionModel& old_model) {
339 ui::ListSelectionModel::SelectedIndices new_selection = 339 ui::ListSelectionModel::SelectedIndices new_selection =
340 tab_strip_model->selection_model().selected_indices(); 340 tab_strip_model->selection_model().selected_indices();
341 std::unique_ptr<base::ListValue> all_tabs(new base::ListValue); 341 std::unique_ptr<base::ListValue> all_tabs(new base::ListValue);
342 342
343 for (size_t i = 0; i < new_selection.size(); ++i) { 343 for (size_t i = 0; i < new_selection.size(); ++i) {
344 int index = new_selection[i]; 344 int index = new_selection[i];
345 WebContents* contents = tab_strip_model->GetWebContentsAt(index); 345 WebContents* contents = tab_strip_model->GetWebContentsAt(index);
346 if (!contents) 346 if (!contents)
347 break; 347 break;
348 int tab_id = ExtensionTabUtil::GetTabId(contents); 348 int tab_id = ExtensionTabUtil::GetTabId(contents);
349 all_tabs->AppendInteger(tab_id); 349 all_tabs->AppendInteger(tab_id);
350 } 350 }
351 351
352 std::unique_ptr<base::ListValue> args(new base::ListValue); 352 std::unique_ptr<base::ListValue> args(new base::ListValue);
353 std::unique_ptr<base::DictionaryValue> select_info(new base::DictionaryValue); 353 std::unique_ptr<base::DictionaryValue> select_info(new base::DictionaryValue);
354 354
355 select_info->Set( 355 select_info->Set(
356 tabs_constants::kWindowIdKey, 356 tabs_constants::kWindowIdKey,
357 new FundamentalValue( 357 new Value(
358 ExtensionTabUtil::GetWindowIdOfTabStripModel(tab_strip_model))); 358 ExtensionTabUtil::GetWindowIdOfTabStripModel(tab_strip_model)));
359 359
360 select_info->Set(tabs_constants::kTabIdsKey, all_tabs.release()); 360 select_info->Set(tabs_constants::kTabIdsKey, all_tabs.release());
361 args->Append(std::move(select_info)); 361 args->Append(std::move(select_info));
362 362
363 // The onHighlighted event replaced onHighlightChanged. 363 // The onHighlighted event replaced onHighlightChanged.
364 Profile* profile = tab_strip_model->profile(); 364 Profile* profile = tab_strip_model->profile();
365 DispatchEvent(profile, events::TABS_ON_HIGHLIGHT_CHANGED, 365 DispatchEvent(profile, events::TABS_ON_HIGHLIGHT_CHANGED,
366 tabs::OnHighlightChanged::kEventName, 366 tabs::OnHighlightChanged::kEventName,
367 std::unique_ptr<base::ListValue>(args->DeepCopy()), 367 std::unique_ptr<base::ListValue>(args->DeepCopy()),
368 EventRouter::USER_GESTURE_UNKNOWN); 368 EventRouter::USER_GESTURE_UNKNOWN);
369 DispatchEvent(profile, events::TABS_ON_HIGHLIGHTED, 369 DispatchEvent(profile, events::TABS_ON_HIGHLIGHTED,
370 tabs::OnHighlighted::kEventName, std::move(args), 370 tabs::OnHighlighted::kEventName, std::move(args),
371 EventRouter::USER_GESTURE_UNKNOWN); 371 EventRouter::USER_GESTURE_UNKNOWN);
372 } 372 }
373 373
374 void TabsEventRouter::TabMoved(WebContents* contents, 374 void TabsEventRouter::TabMoved(WebContents* contents,
375 int from_index, 375 int from_index,
376 int to_index) { 376 int to_index) {
377 std::unique_ptr<base::ListValue> args(new base::ListValue); 377 std::unique_ptr<base::ListValue> args(new base::ListValue);
378 args->AppendInteger(ExtensionTabUtil::GetTabId(contents)); 378 args->AppendInteger(ExtensionTabUtil::GetTabId(contents));
379 379
380 std::unique_ptr<base::DictionaryValue> object_args( 380 std::unique_ptr<base::DictionaryValue> object_args(
381 new base::DictionaryValue()); 381 new base::DictionaryValue());
382 object_args->Set(tabs_constants::kWindowIdKey, 382 object_args->Set(tabs_constants::kWindowIdKey,
383 new FundamentalValue( 383 new Value(
384 ExtensionTabUtil::GetWindowIdOfTab(contents))); 384 ExtensionTabUtil::GetWindowIdOfTab(contents)));
385 object_args->Set(tabs_constants::kFromIndexKey, 385 object_args->Set(tabs_constants::kFromIndexKey,
386 new FundamentalValue(from_index)); 386 new Value(from_index));
387 object_args->Set(tabs_constants::kToIndexKey, 387 object_args->Set(tabs_constants::kToIndexKey,
388 new FundamentalValue(to_index)); 388 new Value(to_index));
389 args->Append(std::move(object_args)); 389 args->Append(std::move(object_args));
390 390
391 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); 391 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
392 DispatchEvent(profile, events::TABS_ON_MOVED, tabs::OnMoved::kEventName, 392 DispatchEvent(profile, events::TABS_ON_MOVED, tabs::OnMoved::kEventName,
393 std::move(args), EventRouter::USER_GESTURE_UNKNOWN); 393 std::move(args), EventRouter::USER_GESTURE_UNKNOWN);
394 } 394 }
395 395
396 void TabsEventRouter::TabUpdated(TabEntry* entry, 396 void TabsEventRouter::TabUpdated(TabEntry* entry,
397 std::set<std::string> changed_property_names) { 397 std::set<std::string> changed_property_names) {
398 bool audible = entry->web_contents()->WasRecentlyAudible(); 398 bool audible = entry->web_contents()->WasRecentlyAudible();
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 } 562 }
563 563
564 void TabsEventRouter::OnAutoDiscardableStateChange(WebContents* contents, 564 void TabsEventRouter::OnAutoDiscardableStateChange(WebContents* contents,
565 bool is_auto_discardable) { 565 bool is_auto_discardable) {
566 std::set<std::string> changed_property_names; 566 std::set<std::string> changed_property_names;
567 changed_property_names.insert(tabs_constants::kAutoDiscardableKey); 567 changed_property_names.insert(tabs_constants::kAutoDiscardableKey);
568 DispatchTabUpdatedEvent(contents, std::move(changed_property_names)); 568 DispatchTabUpdatedEvent(contents, std::move(changed_property_names));
569 } 569 }
570 570
571 } // namespace extensions 571 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698