OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/extension_tabs_module.h" | 5 #include "chrome/browser/extensions/extension_tabs_module.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
885 if (contents) | 885 if (contents) |
886 result_.reset(ExtensionTabUtil::CreateTabValue(contents)); | 886 result_.reset(ExtensionTabUtil::CreateTabValue(contents)); |
887 | 887 |
888 return true; | 888 return true; |
889 } | 889 } |
890 | 890 |
891 UpdateTabFunction::UpdateTabFunction() { | 891 UpdateTabFunction::UpdateTabFunction() { |
892 } | 892 } |
893 | 893 |
894 bool UpdateTabFunction::RunImpl() { | 894 bool UpdateTabFunction::RunImpl() { |
895 int tab_id; | |
896 EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &tab_id)); | |
897 DictionaryValue* update_props; | 895 DictionaryValue* update_props; |
898 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(1, &update_props)); | 896 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(1, &update_props)); |
899 | 897 |
898 Value* tab_value = NULL; | |
Mihai Parparita -not on Chrome
2011/09/21 23:24:05
ExecuteCodeInTabFunction::RunImpl, ReloadTabFuncti
miket_OOO
2011/09/22 00:06:44
Yes, I agree. If I promise not to avoid doing it,
| |
899 if (HasOptionalArgument(0)) { | |
900 EXTENSION_FUNCTION_VALIDATE(args_->Get(0, &tab_value)); | |
901 } | |
902 | |
903 int tab_id = -1; | |
904 TabContentsWrapper* contents = NULL; | |
905 if (tab_value == NULL || tab_value->IsType(Value::TYPE_NULL)) { | |
906 Browser* browser = GetCurrentBrowser(); | |
907 if (!browser) { | |
908 error_ = keys::kNoCurrentWindowError; | |
909 return false; | |
910 } | |
911 contents = browser->tabstrip_model()->GetActiveTabContents(); | |
912 if (!contents) { | |
913 error_ = keys::kNoSelectedTabError; | |
914 return false; | |
915 } | |
916 tab_id = ExtensionTabUtil::GetTabId(contents->tab_contents()); | |
917 } else { | |
918 EXTENSION_FUNCTION_VALIDATE(tab_value->GetAsInteger(&tab_id)); | |
919 } | |
920 | |
921 int tab_index = -1; | |
900 TabStripModel* tab_strip = NULL; | 922 TabStripModel* tab_strip = NULL; |
901 TabContentsWrapper* contents = NULL; | |
902 int tab_index = -1; | |
903 if (!GetTabById(tab_id, profile(), include_incognito(), | 923 if (!GetTabById(tab_id, profile(), include_incognito(), |
904 NULL, &tab_strip, &contents, &tab_index, &error_)) | 924 NULL, &tab_strip, &contents, &tab_index, &error_)) { |
905 return false; | 925 return false; |
906 | 926 } |
907 NavigationController& controller = contents->controller(); | 927 NavigationController& controller = contents->controller(); |
908 | 928 |
909 // TODO(rafaelw): handle setting remaining tab properties: | 929 // TODO(rafaelw): handle setting remaining tab properties: |
910 // -title | 930 // -title |
911 // -favIconUrl | 931 // -favIconUrl |
912 | 932 |
913 // Navigate the tab to a new location if the url is different. | 933 // Navigate the tab to a new location if the url is different. |
914 std::string url_string; | 934 std::string url_string; |
915 if (update_props->HasKey(keys::kUrlKey)) { | 935 if (update_props->HasKey(keys::kUrlKey)) { |
916 EXTENSION_FUNCTION_VALIDATE(update_props->GetString( | 936 EXTENSION_FUNCTION_VALIDATE(update_props->GetString( |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1440 // called for every API call the extension made. | 1460 // called for every API call the extension made. |
1441 GotLanguage(language); | 1461 GotLanguage(language); |
1442 } | 1462 } |
1443 | 1463 |
1444 void DetectTabLanguageFunction::GotLanguage(const std::string& language) { | 1464 void DetectTabLanguageFunction::GotLanguage(const std::string& language) { |
1445 result_.reset(Value::CreateStringValue(language.c_str())); | 1465 result_.reset(Value::CreateStringValue(language.c_str())); |
1446 SendResponse(true); | 1466 SendResponse(true); |
1447 | 1467 |
1448 Release(); // Balanced in Run() | 1468 Release(); // Balanced in Run() |
1449 } | 1469 } |
OLD | NEW |