OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/chromeos/dom_ui/internet_options_handler.h" | 5 #include "chrome/browser/chromeos/dom_ui/internet_options_handler.h" |
6 | 6 |
7 #include <ctype.h> | 7 #include <ctype.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 output.push_back(':'); | 49 output.push_back(':'); |
50 } | 50 } |
51 output.push_back(toupper(address[i])); | 51 output.push_back(toupper(address[i])); |
52 } | 52 } |
53 return output; | 53 return output; |
54 } | 54 } |
55 | 55 |
56 } // namespace | 56 } // namespace |
57 | 57 |
58 InternetOptionsHandler::InternetOptionsHandler() { | 58 InternetOptionsHandler::InternetOptionsHandler() { |
59 chromeos::NetworkLibrary* netlib = | 59 chromeos::CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this); |
60 chromeos::CrosLibrary::Get()->GetNetworkLibrary(); | |
61 netlib->AddNetworkManagerObserver(this); | |
62 netlib->AddCellularDataPlanObserver(this); | |
63 MonitorActiveNetwork(netlib); | |
64 } | 60 } |
65 | 61 |
66 InternetOptionsHandler::~InternetOptionsHandler() { | 62 InternetOptionsHandler::~InternetOptionsHandler() { |
67 chromeos::NetworkLibrary *netlib = | 63 chromeos::CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this); |
68 chromeos::CrosLibrary::Get()->GetNetworkLibrary(); | |
69 netlib->RemoveNetworkManagerObserver(this); | |
70 netlib->RemoveCellularDataPlanObserver(this); | |
71 netlib->RemoveObserverForAllNetworks(this); | |
72 } | 64 } |
73 | 65 |
74 void InternetOptionsHandler::GetLocalizedValues( | 66 void InternetOptionsHandler::GetLocalizedValues( |
75 DictionaryValue* localized_strings) { | 67 DictionaryValue* localized_strings) { |
76 DCHECK(localized_strings); | 68 DCHECK(localized_strings); |
77 // Internet page - ChromeOS | 69 // Internet page - ChromeOS |
78 localized_strings->SetString("internetPage", | 70 localized_strings->SetString("internetPage", |
79 l10n_util::GetStringUTF16(IDS_OPTIONS_INTERNET_TAB_LABEL)); | 71 l10n_util::GetStringUTF16(IDS_OPTIONS_INTERNET_TAB_LABEL)); |
80 | 72 |
81 localized_strings->SetString("wired_title", | 73 localized_strings->SetString("wired_title", |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 | 350 |
359 void InternetOptionsHandler::BuyDataPlanCallback(const ListValue* args) { | 351 void InternetOptionsHandler::BuyDataPlanCallback(const ListValue* args) { |
360 if (!dom_ui_) | 352 if (!dom_ui_) |
361 return; | 353 return; |
362 Browser* browser = BrowserList::FindBrowserWithFeature( | 354 Browser* browser = BrowserList::FindBrowserWithFeature( |
363 dom_ui_->GetProfile(), Browser::FEATURE_TABSTRIP); | 355 dom_ui_->GetProfile(), Browser::FEATURE_TABSTRIP); |
364 if (browser) | 356 if (browser) |
365 browser->OpenMobilePlanTabAndActivate(); | 357 browser->OpenMobilePlanTabAndActivate(); |
366 } | 358 } |
367 | 359 |
368 void InternetOptionsHandler::RefreshNetworkData( | 360 void InternetOptionsHandler::NetworkChanged(chromeos::NetworkLibrary* cros) { |
369 chromeos::NetworkLibrary* cros) { | 361 if (!dom_ui_) |
| 362 return; |
| 363 |
370 DictionaryValue dictionary; | 364 DictionaryValue dictionary; |
371 dictionary.Set("wiredList", GetWiredList()); | 365 dictionary.Set("wiredList", GetWiredList()); |
372 dictionary.Set("wirelessList", GetWirelessList()); | 366 dictionary.Set("wirelessList", GetWirelessList()); |
373 dictionary.Set("rememberedList", GetRememberedList()); | 367 dictionary.Set("rememberedList", GetRememberedList()); |
374 dictionary.SetBoolean("wifiAvailable", cros->wifi_available()); | 368 dictionary.SetBoolean("wifiAvailable", cros->wifi_available()); |
375 dictionary.SetBoolean("wifiEnabled", cros->wifi_enabled()); | 369 dictionary.SetBoolean("wifiEnabled", cros->wifi_enabled()); |
376 dictionary.SetBoolean("cellularAvailable", cros->cellular_available()); | 370 dictionary.SetBoolean("cellularAvailable", cros->cellular_available()); |
377 dictionary.SetBoolean("cellularEnabled", cros->cellular_enabled()); | 371 dictionary.SetBoolean("cellularEnabled", cros->cellular_enabled()); |
378 dom_ui_->CallJavascriptFunction( | 372 dom_ui_->CallJavascriptFunction( |
379 L"options.InternetOptions.refreshNetworkData", dictionary); | 373 L"options.InternetOptions.refreshNetworkData", dictionary); |
380 } | 374 } |
381 | 375 |
382 void InternetOptionsHandler::OnNetworkManagerChanged( | 376 void InternetOptionsHandler::CellularDataPlanChanged( |
383 chromeos::NetworkLibrary* cros) { | |
384 if (!dom_ui_) | |
385 return; | |
386 MonitorActiveNetwork(cros); | |
387 RefreshNetworkData(cros); | |
388 } | |
389 | |
390 void InternetOptionsHandler::OnNetworkChanged( | |
391 chromeos::NetworkLibrary* cros, | |
392 const chromeos::Network* network) { | |
393 if (dom_ui_) | |
394 RefreshNetworkData(cros); | |
395 } | |
396 | |
397 // Add an observer for the active network, if any, so | |
398 // that we can dynamically display the correct icon for | |
399 // that network's signal strength. | |
400 // TODO(ers) Ideally, on this page we'd monitor all networks for | |
401 // signal strength changes, not just the active network. | |
402 void InternetOptionsHandler::MonitorActiveNetwork( | |
403 chromeos::NetworkLibrary* cros) { | |
404 const chromeos::Network* network = cros->active_network(); | |
405 if (active_network_.empty() || network == NULL || | |
406 active_network_ != network->service_path()) { | |
407 if (!active_network_.empty()) { | |
408 cros->RemoveNetworkObserver(active_network_, this); | |
409 } | |
410 if (network != NULL) { | |
411 cros->AddNetworkObserver(network->service_path(), this); | |
412 } | |
413 } | |
414 if (network != NULL) | |
415 active_network_ = network->service_path(); | |
416 else | |
417 active_network_ = ""; | |
418 } | |
419 | |
420 void InternetOptionsHandler::OnCellularDataPlanChanged( | |
421 chromeos::NetworkLibrary* obj) { | 377 chromeos::NetworkLibrary* obj) { |
422 if (!dom_ui_) | 378 if (!dom_ui_) |
423 return; | 379 return; |
424 chromeos::CellularNetwork* cellular = obj->cellular_network(); | 380 chromeos::CellularNetwork* cellular = obj->cellular_network(); |
425 if (!cellular) | 381 if (!cellular) |
426 return; | 382 return; |
427 const chromeos::CellularDataPlanList& plans = cellular->GetDataPlans(); | 383 const chromeos::CellularDataPlanList& plans = cellular->GetDataPlans(); |
428 DictionaryValue connection_plans; | 384 DictionaryValue connection_plans; |
429 ListValue* plan_list = new ListValue(); | 385 ListValue* plan_list = new ListValue(); |
430 for (chromeos::CellularDataPlanList::const_iterator iter = plans.begin(); | 386 for (chromeos::CellularDataPlanList::const_iterator iter = plans.begin(); |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
987 false, | 943 false, |
988 chromeos::ACTIVATION_STATE_UNKNOWN)); | 944 chromeos::ACTIVATION_STATE_UNKNOWN)); |
989 } | 945 } |
990 | 946 |
991 const chromeos::CellularNetworkVector cellular_networks = | 947 const chromeos::CellularNetworkVector cellular_networks = |
992 cros->cellular_networks(); | 948 cros->cellular_networks(); |
993 for (chromeos::CellularNetworkVector::const_iterator it = | 949 for (chromeos::CellularNetworkVector::const_iterator it = |
994 cellular_networks.begin(); it != cellular_networks.end(); ++it) { | 950 cellular_networks.begin(); it != cellular_networks.end(); ++it) { |
995 SkBitmap icon = chromeos::NetworkMenu::IconForNetworkStrength( | 951 SkBitmap icon = chromeos::NetworkMenu::IconForNetworkStrength( |
996 (*it)->strength(), true); | 952 (*it)->strength(), true); |
997 SkBitmap badge = chromeos::NetworkMenu::BadgeForNetworkTechnology(*it); | 953 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); |
998 icon = chromeos::NetworkMenu::IconForDisplay(icon, badge); | 954 icon = chromeos::NetworkMenu::IconForDisplay(icon, badge); |
999 list->Append(GetNetwork( | 955 list->Append(GetNetwork( |
1000 (*it)->service_path(), | 956 (*it)->service_path(), |
1001 icon, | 957 icon, |
1002 (*it)->name(), | 958 (*it)->name(), |
1003 (*it)->connecting(), | 959 (*it)->connecting(), |
1004 (*it)->connected(), | 960 (*it)->connected(), |
1005 chromeos::TYPE_CELLULAR, | 961 chromeos::TYPE_CELLULAR, |
1006 false, | 962 false, |
1007 (*it)->activation_state())); | 963 (*it)->activation_state())); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1043 icon, | 999 icon, |
1044 (*it)->name(), | 1000 (*it)->name(), |
1045 (*it)->connecting(), | 1001 (*it)->connecting(), |
1046 (*it)->connected(), | 1002 (*it)->connected(), |
1047 chromeos::TYPE_WIFI, | 1003 chromeos::TYPE_WIFI, |
1048 true, | 1004 true, |
1049 chromeos::ACTIVATION_STATE_UNKNOWN)); | 1005 chromeos::ACTIVATION_STATE_UNKNOWN)); |
1050 } | 1006 } |
1051 return list; | 1007 return list; |
1052 } | 1008 } |
OLD | NEW |