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

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

Issue 9328037: Add fullscreen state support for chrome.windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small fix Created 8 years, 10 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 "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 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 std::string state_str; 588 std::string state_str;
589 if (update_props->HasKey(keys::kShowStateKey)) { 589 if (update_props->HasKey(keys::kShowStateKey)) {
590 EXTENSION_FUNCTION_VALIDATE(update_props->GetString(keys::kShowStateKey, 590 EXTENSION_FUNCTION_VALIDATE(update_props->GetString(keys::kShowStateKey,
591 &state_str)); 591 &state_str));
592 if (state_str == keys::kShowStateValueNormal) { 592 if (state_str == keys::kShowStateValueNormal) {
593 show_state = ui::SHOW_STATE_NORMAL; 593 show_state = ui::SHOW_STATE_NORMAL;
594 } else if (state_str == keys::kShowStateValueMinimized) { 594 } else if (state_str == keys::kShowStateValueMinimized) {
595 show_state = ui::SHOW_STATE_MINIMIZED; 595 show_state = ui::SHOW_STATE_MINIMIZED;
596 } else if (state_str == keys::kShowStateValueMaximized) { 596 } else if (state_str == keys::kShowStateValueMaximized) {
597 show_state = ui::SHOW_STATE_MAXIMIZED; 597 show_state = ui::SHOW_STATE_MAXIMIZED;
598 } else if (state_str == keys::kShowStateValueFullscreen) {
599 show_state = ui::SHOW_STATE_FULLSCREEN;
598 } else { 600 } else {
599 error_ = keys::kInvalidWindowStateError; 601 error_ = keys::kInvalidWindowStateError;
600 return false; 602 return false;
601 } 603 }
602 } 604 }
603 605
606 if (browser->window()->IsFullscreen() &&
607 show_state != ui::SHOW_STATE_FULLSCREEN)
608 browser->window()->ExitFullscreen();
609
604 switch (show_state) { 610 switch (show_state) {
605 case ui::SHOW_STATE_MINIMIZED: 611 case ui::SHOW_STATE_MINIMIZED:
606 browser->window()->Minimize(); 612 browser->window()->Minimize();
607 break; 613 break;
608 case ui::SHOW_STATE_MAXIMIZED: 614 case ui::SHOW_STATE_MAXIMIZED:
609 browser->window()->Maximize(); 615 browser->window()->Maximize();
610 break; 616 break;
617 case ui::SHOW_STATE_FULLSCREEN:
618 if (browser->window()->IsMinimized() || browser->window()->IsMaximized())
619 browser->window()->Restore();
620 browser->window()->EnterFullscreen(
Mihai Parparita -not on Chrome 2012/02/06 22:31:34 Aaron: should the ability to go fullscreen be tied
621 GURL(), FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION);
Mihai Parparita -not on Chrome 2012/02/06 22:31:34 This ends up displaying the "You have gone full sc
hashimoto 2012/02/07 02:16:00 Done. The message is now "<Extension Name> trigger
622 break;
611 case ui::SHOW_STATE_NORMAL: 623 case ui::SHOW_STATE_NORMAL:
612 browser->window()->Restore(); 624 browser->window()->Restore();
613 break; 625 break;
614 default: 626 default:
615 break; 627 break;
616 } 628 }
617 629
618 gfx::Rect bounds = browser->window()->GetRestoredBounds(); 630 gfx::Rect bounds = browser->window()->GetRestoredBounds();
619 bool set_bounds = false; 631 bool set_bounds = false;
620 632
(...skipping 26 matching lines...) Expand all
647 if (update_props->HasKey(keys::kHeightKey)) { 659 if (update_props->HasKey(keys::kHeightKey)) {
648 EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger( 660 EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger(
649 keys::kHeightKey, 661 keys::kHeightKey,
650 &bounds_val)); 662 &bounds_val));
651 bounds.set_height(bounds_val); 663 bounds.set_height(bounds_val);
652 set_bounds = true; 664 set_bounds = true;
653 } 665 }
654 666
655 if (set_bounds) { 667 if (set_bounds) {
656 if (show_state == ui::SHOW_STATE_MINIMIZED || 668 if (show_state == ui::SHOW_STATE_MINIMIZED ||
657 show_state == ui::SHOW_STATE_MAXIMIZED) { 669 show_state == ui::SHOW_STATE_MAXIMIZED ||
670 show_state == ui::SHOW_STATE_FULLSCREEN) {
658 error_ = keys::kInvalidWindowStateError; 671 error_ = keys::kInvalidWindowStateError;
659 return false; 672 return false;
660 } 673 }
661 browser->window()->SetBounds(bounds); 674 browser->window()->SetBounds(bounds);
662 } 675 }
663 676
664 bool active_val = false; 677 bool active_val = false;
665 if (update_props->HasKey(keys::kFocusedKey)) { 678 if (update_props->HasKey(keys::kFocusedKey)) {
666 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean( 679 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean(
667 keys::kFocusedKey, &active_val)); 680 keys::kFocusedKey, &active_val));
668 if (active_val) { 681 if (active_val) {
669 if (show_state == ui::SHOW_STATE_MINIMIZED) { 682 if (show_state == ui::SHOW_STATE_MINIMIZED) {
670 error_ = keys::kInvalidWindowStateError; 683 error_ = keys::kInvalidWindowStateError;
671 return false; 684 return false;
672 } 685 }
673 browser->window()->Activate(); 686 browser->window()->Activate();
674 } else { 687 } else {
675 if (show_state == ui::SHOW_STATE_MAXIMIZED) { 688 if (show_state == ui::SHOW_STATE_MAXIMIZED ||
689 show_state == ui::SHOW_STATE_FULLSCREEN) {
676 error_ = keys::kInvalidWindowStateError; 690 error_ = keys::kInvalidWindowStateError;
677 return false; 691 return false;
678 } 692 }
679 browser->window()->Deactivate(); 693 browser->window()->Deactivate();
680 } 694 }
681 } 695 }
682 696
683 bool draw_attention = false; 697 bool draw_attention = false;
684 if (update_props->HasKey(keys::kDrawAttentionKey)) { 698 if (update_props->HasKey(keys::kDrawAttentionKey)) {
685 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean( 699 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean(
(...skipping 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after
1708 // called for every API call the extension made. 1722 // called for every API call the extension made.
1709 GotLanguage(language); 1723 GotLanguage(language);
1710 } 1724 }
1711 1725
1712 void DetectTabLanguageFunction::GotLanguage(const std::string& language) { 1726 void DetectTabLanguageFunction::GotLanguage(const std::string& language) {
1713 result_.reset(Value::CreateStringValue(language.c_str())); 1727 result_.reset(Value::CreateStringValue(language.c_str()));
1714 SendResponse(true); 1728 SendResponse(true);
1715 1729
1716 Release(); // Balanced in Run() 1730 Release(); // Balanced in Run()
1717 } 1731 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698