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

Side by Side Diff: chrome/browser/extensions/extension_tabs_module.cc

Issue 7981040: Make chrome.tabs.update's tabId parameter optional. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 3 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) 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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698