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

Side by Side Diff: chrome/browser/ui/webui/feedback_ui.cc

Issue 10388232: Replace most users of BrowserList::GetLastActive in feedback ui with more appropriate functions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Deleted: svn:mergeinfo
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 "chrome/browser/ui/webui/feedback_ui.h" 5 #include "chrome/browser/ui/webui/feedback_ui.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 ReplaceFirstSubstringAfterOffset(&timestamp_, 350 ReplaceFirstSubstringAfterOffset(&timestamp_,
351 0, 351 0,
352 kTimestampParameter, 352 kTimestampParameter,
353 ""); 353 "");
354 break; 354 break;
355 } 355 }
356 } 356 }
357 } 357 }
358 #endif 358 #endif
359 359
360 // TODO(beng): Replace GetLastActive with a more specific method of locating
361 // the target contents.
360 Browser* browser = BrowserList::GetLastActive(); 362 Browser* browser = BrowserList::GetLastActive();
361 // Sanity checks. 363 // Sanity checks.
362 if (((index == 0) && (index_str != "0")) || !browser || 364 if (((index == 0) && (index_str != "0")) || !browser ||
363 index >= browser->tab_count()) { 365 index >= browser->tab_count()) {
364 return false; 366 return false;
365 } 367 }
366 368
367 WebContents* target_tab = 369 WebContents* target_tab =
368 browser->GetTabContentsWrapperAt(index)->web_contents(); 370 browser->GetTabContentsWrapperAt(index)->web_contents();
369 if (target_tab) { 371 if (target_tab) {
370 target_tab_url_ = target_tab->GetURL().spec(); 372 target_tab_url_ = target_tab->GetURL().spec();
371 } 373 }
372 374
373 // Setup the screenshot source after we've verified input is legit. 375 // Setup the screenshot source after we've verified input is legit.
374 SetupScreenshotsSource(); 376 SetupScreenshotsSource();
375 377
376 return true; 378 return true;
377 } 379 }
378 380
379 void FeedbackHandler::RegisterMessages() { 381 void FeedbackHandler::RegisterMessages() {
380 SetupScreenshotsSource(); 382 SetupScreenshotsSource();
Evan Stade 2012/05/22 18:46:11 I have no idea why this is called twice
Ben Goodger (Google) 2012/05/22 19:21:27 Initial inspection seems to suggest that via Init(
381 383
382 web_ui()->RegisterMessageCallback("getDialogDefaults", 384 web_ui()->RegisterMessageCallback("getDialogDefaults",
383 base::Bind(&FeedbackHandler::HandleGetDialogDefaults, 385 base::Bind(&FeedbackHandler::HandleGetDialogDefaults,
384 base::Unretained(this))); 386 base::Unretained(this)));
385 web_ui()->RegisterMessageCallback("refreshCurrentScreenshot", 387 web_ui()->RegisterMessageCallback("refreshCurrentScreenshot",
386 base::Bind(&FeedbackHandler::HandleRefreshCurrentScreenshot, 388 base::Bind(&FeedbackHandler::HandleRefreshCurrentScreenshot,
387 base::Unretained(this))); 389 base::Unretained(this)));
388 #if defined(OS_CHROMEOS) 390 #if defined(OS_CHROMEOS)
389 web_ui()->RegisterMessageCallback("refreshSavedScreenshots", 391 web_ui()->RegisterMessageCallback("refreshSavedScreenshots",
390 base::Bind(&FeedbackHandler::HandleRefreshSavedScreenshots, 392 base::Bind(&FeedbackHandler::HandleRefreshSavedScreenshots,
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 // function, close our feedback tab anyway, we have no more use for it. 542 // function, close our feedback tab anyway, we have no more use for it.
541 CloseFeedbackTab(); 543 CloseFeedbackTab();
542 } 544 }
543 545
544 void FeedbackHandler::HandleCancel(const ListValue*) { 546 void FeedbackHandler::HandleCancel(const ListValue*) {
545 CloseFeedbackTab(); 547 CloseFeedbackTab();
546 } 548 }
547 549
548 void FeedbackHandler::HandleOpenSystemTab(const ListValue* args) { 550 void FeedbackHandler::HandleOpenSystemTab(const ListValue* args) {
549 #if defined(OS_CHROMEOS) 551 #if defined(OS_CHROMEOS)
550 Browser* last_active = BrowserList::GetLastActive(); 552 web_ui()->GetWebContents()->GetDelegate()->OpenURLFromTab(
551 last_active->OpenURL( 553 web_ui()->GetWebContents(),
552 content::OpenURLParams(GURL(chrome::kChromeUISystemInfoURL), 554 content::OpenURLParams(GURL(chrome::kChromeUISystemInfoURL),
553 content::Referrer(), 555 content::Referrer(),
554 NEW_FOREGROUND_TAB, 556 NEW_FOREGROUND_TAB,
555 content::PAGE_TRANSITION_LINK, 557 content::PAGE_TRANSITION_LINK,
556 false)); 558 false));
557 last_active->window()->Activate();
558 #endif 559 #endif
559 } 560 }
560 561
561 void FeedbackHandler::CancelFeedbackCollection() { 562 void FeedbackHandler::CancelFeedbackCollection() {
562 #if defined(OS_CHROMEOS) 563 #if defined(OS_CHROMEOS)
563 if (syslogs_handle_ != 0) { 564 if (syslogs_handle_ != 0) {
564 chromeos::system::SyslogsProvider* provider = 565 chromeos::system::SyslogsProvider* provider =
565 chromeos::system::SyslogsProvider::GetInstance(); 566 chromeos::system::SyslogsProvider::GetInstance();
566 if (provider && syslogs_consumer_.HasPendingRequests()) 567 if (provider && syslogs_consumer_.HasPendingRequests())
567 provider->CancelRequest(syslogs_handle_); 568 provider->CancelRequest(syslogs_handle_);
568 } 569 }
569 #endif 570 #endif
570 } 571 }
571 572
572 void FeedbackHandler::CloseFeedbackTab() { 573 void FeedbackHandler::CloseFeedbackTab() {
573 ClobberScreenshotsSource(); 574 ClobberScreenshotsSource();
574 575 tab_->GetDelegate()->CloseContents(tab_);
575 Browser* browser = BrowserList::GetLastActive();
576 if (browser) {
577 browser->CloseTabContents(tab_);
578 } else {
579 LOG(FATAL) << "Failed to get last active browser.";
580 }
581 } 576 }
582 577
583 //////////////////////////////////////////////////////////////////////////////// 578 ////////////////////////////////////////////////////////////////////////////////
584 // 579 //
585 // FeedbackUI 580 // FeedbackUI
586 // 581 //
587 //////////////////////////////////////////////////////////////////////////////// 582 ////////////////////////////////////////////////////////////////////////////////
588 FeedbackUI::FeedbackUI(content::WebUI* web_ui) 583 FeedbackUI::FeedbackUI(content::WebUI* web_ui)
589 : WebDialogUI(web_ui) { 584 : WebDialogUI(web_ui) {
590 FeedbackHandler* handler = new FeedbackHandler(web_ui->GetWebContents()); 585 FeedbackHandler* handler = new FeedbackHandler(web_ui->GetWebContents());
(...skipping 28 matching lines...) Expand all
619 size_t sort_size = std::min(max_saved, screenshot_filepaths.size()); 614 size_t sort_size = std::min(max_saved, screenshot_filepaths.size());
620 std::partial_sort(screenshot_filepaths.begin(), 615 std::partial_sort(screenshot_filepaths.begin(),
621 screenshot_filepaths.begin() + sort_size, 616 screenshot_filepaths.begin() + sort_size,
622 screenshot_filepaths.end(), 617 screenshot_filepaths.end(),
623 ScreenshotTimestampComp); 618 ScreenshotTimestampComp);
624 for (size_t i = 0; i < sort_size; ++i) 619 for (size_t i = 0; i < sort_size; ++i)
625 saved_screenshots->push_back(std::string(kSavedScreenshotsUrl) + 620 saved_screenshots->push_back(std::string(kSavedScreenshotsUrl) +
626 screenshot_filepaths[i]); 621 screenshot_filepaths[i]);
627 } 622 }
628 #endif 623 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698