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

Side by Side Diff: ash/system/chromeos/network/network_icon.cc

Issue 314183002: Cache network icon urls (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + Address feedback Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/system/chromeos/network/network_icon.h" 5 #include "ash/system/chromeos/network/network_icon.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/system/chromeos/network/network_icon_animation.h" 8 #include "ash/system/chromeos/network/network_icon_animation.h"
9 #include "ash/system/chromeos/network/network_icon_animation_observer.h" 9 #include "ash/system/chromeos/network/network_icon_animation_observer.h"
10 #include "ash/system/tray/system_tray_delegate.h" 10 #include "ash/system/tray/system_tray_delegate.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "chromeos/network/device_state.h" 12 #include "chromeos/network/device_state.h"
13 #include "chromeos/network/network_connection_handler.h" 13 #include "chromeos/network/network_connection_handler.h"
14 #include "chromeos/network/network_state.h" 14 #include "chromeos/network/network_state.h"
15 #include "chromeos/network/network_state_handler.h" 15 #include "chromeos/network/network_state_handler.h"
16 #include "grit/ash_resources.h" 16 #include "grit/ash_resources.h"
17 #include "grit/ash_strings.h" 17 #include "grit/ash_strings.h"
18 #include "third_party/cros_system_api/dbus/service_constants.h" 18 #include "third_party/cros_system_api/dbus/service_constants.h"
19 #include "ui/base/l10n/l10n_util.h" 19 #include "ui/base/l10n/l10n_util.h"
20 #include "ui/base/resource/resource_bundle.h" 20 #include "ui/base/resource/resource_bundle.h"
21 #include "ui/base/webui/web_ui_util.h"
21 #include "ui/gfx/canvas.h" 22 #include "ui/gfx/canvas.h"
22 #include "ui/gfx/image/image_skia_operations.h" 23 #include "ui/gfx/image/image_skia_operations.h"
23 #include "ui/gfx/image/image_skia_source.h" 24 #include "ui/gfx/image/image_skia_source.h"
24 #include "ui/gfx/rect.h" 25 #include "ui/gfx/rect.h"
25 #include "ui/gfx/size_conversions.h" 26 #include "ui/gfx/size_conversions.h"
26 27
27 using chromeos::DeviceState; 28 using chromeos::DeviceState;
28 using chromeos::NetworkConnectionHandler; 29 using chromeos::NetworkConnectionHandler;
29 using chromeos::NetworkHandler; 30 using chromeos::NetworkHandler;
30 using chromeos::NetworkState; 31 using chromeos::NetworkState;
(...skipping 17 matching lines...) Expand all
48 const gfx::ImageSkia* top_left; 49 const gfx::ImageSkia* top_left;
49 const gfx::ImageSkia* top_right; 50 const gfx::ImageSkia* top_right;
50 const gfx::ImageSkia* bottom_left; 51 const gfx::ImageSkia* bottom_left;
51 const gfx::ImageSkia* bottom_right; 52 const gfx::ImageSkia* bottom_right;
52 }; 53 };
53 54
54 //------------------------------------------------------------------------------ 55 //------------------------------------------------------------------------------
55 // class used for maintaining a map of network state and images. 56 // class used for maintaining a map of network state and images.
56 class NetworkIconImpl { 57 class NetworkIconImpl {
57 public: 58 public:
58 explicit NetworkIconImpl(IconType icon_type); 59 NetworkIconImpl(const std::string& path, IconType icon_type);
59 60
60 // Determines whether or not the associated network might be dirty and if so 61 // Determines whether or not the associated network might be dirty and if so
61 // updates and generates the icon. Does nothing if network no longer exists. 62 // updates and generates the icon. Does nothing if network no longer exists.
62 void Update(const chromeos::NetworkState* network); 63 void Update(const chromeos::NetworkState* network);
63 64
65 // Returns the cached image url for |image_| based on |scale_factor|.
66 const std::string& GetImageUrl(float scale_factor);
67
64 const gfx::ImageSkia& image() const { return image_; } 68 const gfx::ImageSkia& image() const { return image_; }
65 69
66 private: 70 private:
71 typedef std::map<float, std::string> ImageUrlMap;
72
67 // Updates |strength_index_| for wireless networks. Returns true if changed. 73 // Updates |strength_index_| for wireless networks. Returns true if changed.
68 bool UpdateWirelessStrengthIndex(const chromeos::NetworkState* network); 74 bool UpdateWirelessStrengthIndex(const chromeos::NetworkState* network);
69 75
70 // Updates the local state for cellular networks. Returns true if changed. 76 // Updates the local state for cellular networks. Returns true if changed.
71 bool UpdateCellularState(const chromeos::NetworkState* network); 77 bool UpdateCellularState(const chromeos::NetworkState* network);
72 78
73 // Updates the portal state for wireless networks. Returns true if changed. 79 // Updates the portal state for wireless networks. Returns true if changed.
74 bool UpdatePortalState(const chromeos::NetworkState* network); 80 bool UpdatePortalState(const chromeos::NetworkState* network);
75 81
76 // Updates the VPN badge. Returns true if changed. 82 // Updates the VPN badge. Returns true if changed.
77 bool UpdateVPNBadge(); 83 bool UpdateVPNBadge();
78 84
79 // Gets |badges| based on |network| and the current state. 85 // Gets |badges| based on |network| and the current state.
80 void GetBadges(const NetworkState* network, Badges* badges); 86 void GetBadges(const NetworkState* network, Badges* badges);
81 87
82 // Gets the appropriate icon and badges and composites the image. 88 // Gets the appropriate icon and badges and composites the image.
83 void GenerateImage(const chromeos::NetworkState* network); 89 void GenerateImage(const chromeos::NetworkState* network);
84 90
91 // Network path, used for debugging.
92 std::string network_path_;
93
85 // Defines color theme and VPN badging 94 // Defines color theme and VPN badging
86 const IconType icon_type_; 95 const IconType icon_type_;
87 96
88 // Cached state of the network when the icon was last generated. 97 // Cached state of the network when the icon was last generated.
89 std::string state_; 98 std::string state_;
90 99
91 // Cached strength index of the network when the icon was last generated. 100 // Cached strength index of the network when the icon was last generated.
92 int strength_index_; 101 int strength_index_;
93 102
94 // Cached technology badge for the network when the icon was last generated. 103 // Cached technology badge for the network when the icon was last generated.
95 const gfx::ImageSkia* technology_badge_; 104 const gfx::ImageSkia* technology_badge_;
96 105
97 // Cached vpn badge for the network when the icon was last generated. 106 // Cached vpn badge for the network when the icon was last generated.
98 const gfx::ImageSkia* vpn_badge_; 107 const gfx::ImageSkia* vpn_badge_;
99 108
100 // Cached roaming state of the network when the icon was last generated. 109 // Cached roaming state of the network when the icon was last generated.
101 std::string roaming_state_; 110 std::string roaming_state_;
102 111
103 // Cached portal state of the network when the icon was last generated. 112 // Cached portal state of the network when the icon was last generated.
104 bool behind_captive_portal_; 113 bool behind_captive_portal_;
105 114
106 // Generated icon image. 115 // Generated icon image.
107 gfx::ImageSkia image_; 116 gfx::ImageSkia image_;
108 117
118 // Map of cached image urls by scale factor. Cleared whenever image_ is
119 // generated.
120 ImageUrlMap image_urls_;
121
109 DISALLOW_COPY_AND_ASSIGN(NetworkIconImpl); 122 DISALLOW_COPY_AND_ASSIGN(NetworkIconImpl);
110 }; 123 };
111 124
112 //------------------------------------------------------------------------------ 125 //------------------------------------------------------------------------------
113 // Maintain a static (global) icon map. Note: Icons are never destroyed; 126 // Maintain a static (global) icon map. Note: Icons are never destroyed;
114 // it is assumed that a finite and reasonable number of network icons will be 127 // it is assumed that a finite and reasonable number of network icons will be
115 // created during a session. 128 // created during a session.
116 129
117 typedef std::map<std::string, NetworkIconImpl*> NetworkIconMap; 130 typedef std::map<std::string, NetworkIconImpl*> NetworkIconMap;
118 131
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 private: 263 private:
251 const gfx::ImageSkia icon_; 264 const gfx::ImageSkia icon_;
252 const Badges badges_; 265 const Badges badges_;
253 266
254 DISALLOW_COPY_AND_ASSIGN(NetworkIconImageSource); 267 DISALLOW_COPY_AND_ASSIGN(NetworkIconImageSource);
255 }; 268 };
256 269
257 //------------------------------------------------------------------------------ 270 //------------------------------------------------------------------------------
258 // Utilities for extracting icon images. 271 // Utilities for extracting icon images.
259 272
273 // A struct used for caching image urls.
274 struct ImageIdForNetworkType {
275 ImageIdForNetworkType(IconType icon_type,
276 const std::string& network_type,
277 float scale_factor) :
278 icon_type(icon_type),
279 network_type(network_type),
280 scale_factor(scale_factor) {}
281 bool operator<(const ImageIdForNetworkType& other) const {
282 if (icon_type != other.icon_type)
283 return icon_type < other.icon_type;
284 if (network_type != other.network_type)
285 return network_type < other.network_type;
286 return scale_factor < other.scale_factor;
287 }
288 IconType icon_type;
289 std::string network_type;
290 float scale_factor;
291 };
292
293 typedef std::map<ImageIdForNetworkType, std::string> ImageIdUrlMap;
294
260 bool IconTypeIsDark(IconType icon_type) { 295 bool IconTypeIsDark(IconType icon_type) {
261 return (icon_type != ICON_TYPE_TRAY); 296 return (icon_type != ICON_TYPE_TRAY);
262 } 297 }
263 298
264 bool IconTypeHasVPNBadge(IconType icon_type) { 299 bool IconTypeHasVPNBadge(IconType icon_type) {
265 return (icon_type != ICON_TYPE_LIST); 300 return (icon_type != ICON_TYPE_LIST);
266 } 301 }
267 302
268 int NumImagesForType(ImageType type) { 303 int NumImagesForType(ImageType type) {
269 return (type == BARS) ? kNumBarsImages : kNumArcsImages; 304 return (type == BARS) ? kNumBarsImages : kNumArcsImages;
(...skipping 29 matching lines...) Expand all
299 int num_images = NumImagesForType(image_type); 334 int num_images = NumImagesForType(image_type);
300 if (index < 0 || index >= num_images) 335 if (index < 0 || index >= num_images)
301 return gfx::ImageSkia(); 336 return gfx::ImageSkia();
302 gfx::ImageSkia* images = BaseImageForType(image_type, icon_type); 337 gfx::ImageSkia* images = BaseImageForType(image_type, icon_type);
303 int width = images->width(); 338 int width = images->width();
304 int height = images->height() / num_images; 339 int height = images->height() / num_images;
305 return gfx::ImageSkiaOperations::ExtractSubset(*images, 340 return gfx::ImageSkiaOperations::ExtractSubset(*images,
306 gfx::Rect(0, index * height, width, height)); 341 gfx::Rect(0, index * height, width, height));
307 } 342 }
308 343
309 const gfx::ImageSkia GetConnectedImage(const std::string& type, 344 const gfx::ImageSkia GetConnectedImage(IconType icon_type,
310 IconType icon_type) { 345 const std::string& network_type) {
311 if (type == shill::kTypeVPN) { 346 if (network_type == shill::kTypeVPN) {
312 return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 347 return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
313 IDR_AURA_UBER_TRAY_NETWORK_VPN); 348 IDR_AURA_UBER_TRAY_NETWORK_VPN);
314 } 349 }
315 ImageType image_type = ImageTypeForNetworkType(type); 350 ImageType image_type = ImageTypeForNetworkType(network_type);
316 const int connected_index = NumImagesForType(image_type) - 1; 351 const int connected_index = NumImagesForType(image_type) - 1;
317 return GetImageForIndex(image_type, icon_type, connected_index); 352 return GetImageForIndex(image_type, icon_type, connected_index);
318 } 353 }
319 354
320 const gfx::ImageSkia GetDisconnectedImage(const std::string& type, 355 const gfx::ImageSkia GetDisconnectedImage(IconType icon_type,
321 IconType icon_type) { 356 const std::string& network_type) {
322 if (type == shill::kTypeVPN) { 357 if (network_type == shill::kTypeVPN) {
323 // Note: same as connected image, shouldn't normally be seen. 358 // Note: same as connected image, shouldn't normally be seen.
324 return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 359 return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
325 IDR_AURA_UBER_TRAY_NETWORK_VPN); 360 IDR_AURA_UBER_TRAY_NETWORK_VPN);
326 } 361 }
327 ImageType image_type = ImageTypeForNetworkType(type); 362 ImageType image_type = ImageTypeForNetworkType(network_type);
328 const int disconnected_index = 0; 363 const int disconnected_index = 0;
329 return GetImageForIndex(image_type, icon_type, disconnected_index); 364 return GetImageForIndex(image_type, icon_type, disconnected_index);
330 } 365 }
331 366
367 const std::string& GetDisconnectedImageUrl(IconType icon_type,
368 const std::string& network_type,
369 float scale_factor) {
370 static ImageIdUrlMap* s_image_url_map = NULL;
371 if (s_image_url_map == NULL)
372 s_image_url_map = new ImageIdUrlMap;
373
374 ImageIdForNetworkType key(icon_type, network_type, scale_factor);
375 ImageIdUrlMap::iterator iter = s_image_url_map->find(key);
376 if (iter != s_image_url_map->end())
377 return iter->second;
378
379 VLOG(2) << "Generating disconnected bitmap URL for: " << network_type;
380 gfx::ImageSkia image = GetDisconnectedImage(icon_type, network_type);
381 gfx::ImageSkiaRep image_rep = image.GetRepresentation(scale_factor);
382 iter = s_image_url_map->insert(std::make_pair(
383 key, webui::GetBitmapDataUrl(image_rep.sk_bitmap()))).first;
384 return iter->second;
385 }
386
332 gfx::ImageSkia* ConnectingWirelessImage(ImageType image_type, 387 gfx::ImageSkia* ConnectingWirelessImage(ImageType image_type,
333 IconType icon_type, 388 IconType icon_type,
334 double animation) { 389 double animation) {
335 static gfx::ImageSkia* s_bars_images_dark[kNumBarsImages - 1]; 390 static gfx::ImageSkia* s_bars_images_dark[kNumBarsImages - 1];
336 static gfx::ImageSkia* s_bars_images_light[kNumBarsImages - 1]; 391 static gfx::ImageSkia* s_bars_images_light[kNumBarsImages - 1];
337 static gfx::ImageSkia* s_arcs_images_dark[kNumArcsImages - 1]; 392 static gfx::ImageSkia* s_arcs_images_dark[kNumArcsImages - 1];
338 static gfx::ImageSkia* s_arcs_images_light[kNumArcsImages - 1]; 393 static gfx::ImageSkia* s_arcs_images_light[kNumArcsImages - 1];
339 int image_count = NumImagesForType(image_type) - 1; 394 int image_count = NumImagesForType(image_type) - 1;
340 int index = animation * nextafter(static_cast<float>(image_count), 0); 395 int index = animation * nextafter(static_cast<float>(image_count), 0);
341 index = std::max(std::min(index, image_count - 1), 0); 396 index = std::max(std::min(index, image_count - 1), 0);
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 badges.bottom_left = ConnectingVpnBadge(animation); 557 badges.bottom_left = ConnectingVpnBadge(animation);
503 return gfx::ImageSkia( 558 return gfx::ImageSkia(
504 new NetworkIconImageSource(icon, badges), icon.size()); 559 new NetworkIconImageSource(icon, badges), icon.size());
505 } else { 560 } else {
506 gfx::ImageSkia* icon = ConnectingVpnImage(animation); 561 gfx::ImageSkia* icon = ConnectingVpnImage(animation);
507 return gfx::ImageSkia( 562 return gfx::ImageSkia(
508 new NetworkIconImageSource(*icon, Badges()), icon->size()); 563 new NetworkIconImageSource(*icon, Badges()), icon->size());
509 } 564 }
510 } 565 }
511 566
512 gfx::ImageSkia GetConnectingImage(const std::string& network_type, 567 gfx::ImageSkia GetConnectingImage(IconType icon_type,
513 IconType icon_type) { 568 const std::string& network_type) {
514 if (network_type == shill::kTypeVPN) 569 if (network_type == shill::kTypeVPN)
515 return GetConnectingVpnImage(icon_type); 570 return GetConnectingVpnImage(icon_type);
516 571
517 ImageType image_type = ImageTypeForNetworkType(network_type); 572 ImageType image_type = ImageTypeForNetworkType(network_type);
518 double animation = NetworkIconAnimation::GetInstance()->GetAnimation(); 573 double animation = NetworkIconAnimation::GetInstance()->GetAnimation();
519 574
520 gfx::ImageSkia* icon = ConnectingWirelessImage( 575 gfx::ImageSkia* icon = ConnectingWirelessImage(
521 image_type, icon_type, animation); 576 image_type, icon_type, animation);
522 return gfx::ImageSkia( 577 return gfx::ImageSkia(
523 new NetworkIconImageSource(*icon, Badges()), icon->size()); 578 new NetworkIconImageSource(*icon, Badges()), icon->size());
524 } 579 }
525 580
581 std::string GetConnectingImageUrl(IconType icon_type,
582 const std::string& network_type,
583 float scale_factor) {
584 // Caching the connecting image is complicated and we will never draw more
585 // than a few per frame, so just generate the image url each time.
586 gfx::ImageSkia image = GetConnectingImage(icon_type, network_type);
587 gfx::ImageSkiaRep image_rep = image.GetRepresentation(scale_factor);
588 return webui::GetBitmapDataUrl(image_rep.sk_bitmap());
589 }
590
526 } // namespace 591 } // namespace
527 592
528 //------------------------------------------------------------------------------ 593 //------------------------------------------------------------------------------
529 // NetworkIconImpl 594 // NetworkIconImpl
530 595
531 NetworkIconImpl::NetworkIconImpl(IconType icon_type) 596 NetworkIconImpl::NetworkIconImpl(const std::string& path, IconType icon_type)
532 : icon_type_(icon_type), 597 : network_path_(path),
598 icon_type_(icon_type),
533 strength_index_(-1), 599 strength_index_(-1),
534 technology_badge_(NULL), 600 technology_badge_(NULL),
535 vpn_badge_(NULL), 601 vpn_badge_(NULL),
536 behind_captive_portal_(false) { 602 behind_captive_portal_(false) {
537 // Default image 603 // Default image
538 image_ = GetDisconnectedImage(shill::kTypeWifi, icon_type); 604 image_ = GetDisconnectedImage(icon_type, shill::kTypeWifi);
539 } 605 }
540 606
541 void NetworkIconImpl::Update(const NetworkState* network) { 607 void NetworkIconImpl::Update(const NetworkState* network) {
542 DCHECK(network); 608 DCHECK(network);
543 // Determine whether or not we need to update the icon. 609 // Determine whether or not we need to update the icon.
544 bool dirty = image_.isNull(); 610 bool dirty = image_.isNull();
545 611
546 // If the network state has changed, the icon needs updating. 612 // If the network state has changed, the icon needs updating.
547 if (state_ != network->connection_state()) { 613 if (state_ != network->connection_state()) {
548 state_ = network->connection_state(); 614 state_ = network->connection_state();
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 } 733 }
668 } 734 }
669 735
670 void NetworkIconImpl::GenerateImage(const NetworkState* network) { 736 void NetworkIconImpl::GenerateImage(const NetworkState* network) {
671 DCHECK(network); 737 DCHECK(network);
672 gfx::ImageSkia icon = GetIcon(network, icon_type_, strength_index_); 738 gfx::ImageSkia icon = GetIcon(network, icon_type_, strength_index_);
673 Badges badges; 739 Badges badges;
674 GetBadges(network, &badges); 740 GetBadges(network, &badges);
675 image_ = gfx::ImageSkia( 741 image_ = gfx::ImageSkia(
676 new NetworkIconImageSource(icon, badges), icon.size()); 742 new NetworkIconImageSource(icon, badges), icon.size());
743 image_urls_.clear();
677 } 744 }
678 745
679 //------------------------------------------------------------------------------ 746 const std::string& NetworkIconImpl::GetImageUrl(float scale_factor) {
680 // Public interface 747 ImageUrlMap::iterator iter = image_urls_.find(scale_factor);
748 if (iter != image_urls_.end())
749 return iter->second;
681 750
682 gfx::ImageSkia GetImageForNetwork(const NetworkState* network, 751 VLOG(2) << "Generating bitmap URL for: " << network_path_;
683 IconType icon_type) { 752 gfx::ImageSkiaRep image_rep = image_.GetRepresentation(scale_factor);
684 DCHECK(network); 753 iter = image_urls_.insert(std::make_pair(
685 // Handle connecting icons. 754 scale_factor, webui::GetBitmapDataUrl(image_rep.sk_bitmap()))).first;
686 if (network->IsConnectingState()) 755 return iter->second;
687 return GetConnectingImage(network->type(), icon_type); 756 }
688 757
758 namespace {
759
760 NetworkIconImpl* FindAndUpdateImageImpl(const NetworkState* network,
761 IconType icon_type) {
689 // Find or add the icon. 762 // Find or add the icon.
690 NetworkIconMap* icon_map = GetIconMap(icon_type); 763 NetworkIconMap* icon_map = GetIconMap(icon_type);
691 NetworkIconImpl* icon; 764 NetworkIconImpl* icon;
692 NetworkIconMap::iterator iter = icon_map->find(network->path()); 765 NetworkIconMap::iterator iter = icon_map->find(network->path());
693 if (iter == icon_map->end()) { 766 if (iter == icon_map->end()) {
694 icon = new NetworkIconImpl(icon_type); 767 icon = new NetworkIconImpl(network->path(), icon_type);
695 icon_map->insert(std::make_pair(network->path(), icon)); 768 icon_map->insert(std::make_pair(network->path(), icon));
696 } else { 769 } else {
697 icon = iter->second; 770 icon = iter->second;
698 } 771 }
699 772
700 // Update and return the icon's image. 773 // Update and return the icon's image.
701 icon->Update(network); 774 icon->Update(network);
775 return icon;
776 }
777
778 } // namespace
779
780 //------------------------------------------------------------------------------
781 // Public interface
782
783 gfx::ImageSkia GetImageForNetwork(const NetworkState* network,
784 IconType icon_type) {
785 DCHECK(network);
786 // Handle connecting icons.
787 if (network->IsConnectingState())
788 return GetConnectingImage(icon_type, network->type());
789
790 NetworkIconImpl* icon = FindAndUpdateImageImpl(network, icon_type);
702 return icon->image(); 791 return icon->image();
703 } 792 }
704 793
794 std::string GetImageUrlForNetwork(const NetworkState* network,
795 IconType icon_type,
796 float scale_factor) {
797 DCHECK(network);
798 // Handle connecting icons.
799 if (network->IsConnectingState())
800 return GetConnectingImageUrl(icon_type, network->type(), scale_factor);
801
802 NetworkIconImpl* icon = FindAndUpdateImageImpl(network, icon_type);
803 return icon->GetImageUrl(scale_factor);
804 }
805
705 gfx::ImageSkia GetImageForConnectedNetwork(IconType icon_type, 806 gfx::ImageSkia GetImageForConnectedNetwork(IconType icon_type,
706 const std::string& network_type) { 807 const std::string& network_type) {
707 return GetConnectedImage(network_type, icon_type); 808 return GetConnectedImage(icon_type, network_type);
708 } 809 }
709 810
710 gfx::ImageSkia GetImageForConnectingNetwork(IconType icon_type, 811 gfx::ImageSkia GetImageForConnectingNetwork(IconType icon_type,
711 const std::string& network_type) { 812 const std::string& network_type) {
712 return GetConnectingImage(network_type, icon_type); 813 return GetConnectingImage(icon_type, network_type);
713 } 814 }
714 815
715 gfx::ImageSkia GetImageForDisconnectedNetwork(IconType icon_type, 816 gfx::ImageSkia GetImageForDisconnectedNetwork(IconType icon_type,
716 const std::string& network_type) { 817 const std::string& network_type) {
717 return GetDisconnectedImage(network_type, icon_type); 818 return GetDisconnectedImage(icon_type, network_type);
819 }
820
821 std::string GetImageUrlForDisconnectedNetwork(IconType icon_type,
822 const std::string& network_type,
823 float scale_factor) {
824 return GetDisconnectedImageUrl(icon_type, network_type, scale_factor);
718 } 825 }
719 826
720 base::string16 GetLabelForNetwork(const chromeos::NetworkState* network, 827 base::string16 GetLabelForNetwork(const chromeos::NetworkState* network,
721 IconType icon_type) { 828 IconType icon_type) {
722 DCHECK(network); 829 DCHECK(network);
723 std::string activation_state = network->activation_state(); 830 std::string activation_state = network->activation_state();
724 if (icon_type == ICON_TYPE_LIST) { 831 if (icon_type == ICON_TYPE_LIST) {
725 // Show "<network>: [Connecting|Activating]..." 832 // Show "<network>: [Connecting|Activating]..."
726 if (network->IsConnectingState()) { 833 if (network->IsConnectingState()) {
727 return l10n_util::GetStringFUTF16( 834 return l10n_util::GetStringFUTF16(
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 iter != networks.end(); ++iter) { 976 iter != networks.end(); ++iter) {
870 network_paths.insert((*iter)->path()); 977 network_paths.insert((*iter)->path());
871 } 978 }
872 PurgeIconMap(ICON_TYPE_TRAY, network_paths); 979 PurgeIconMap(ICON_TYPE_TRAY, network_paths);
873 PurgeIconMap(ICON_TYPE_DEFAULT_VIEW, network_paths); 980 PurgeIconMap(ICON_TYPE_DEFAULT_VIEW, network_paths);
874 PurgeIconMap(ICON_TYPE_LIST, network_paths); 981 PurgeIconMap(ICON_TYPE_LIST, network_paths);
875 } 982 }
876 983
877 } // namespace network_icon 984 } // namespace network_icon
878 } // namespace ash 985 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/chromeos/network/network_icon.h ('k') | chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698