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

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: Fix default case handling 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 show_state != ui::SHOW_STATE_DEFAULT)
609 browser->window()->ExitFullscreen();
610
604 switch (show_state) { 611 switch (show_state) {
605 case ui::SHOW_STATE_MINIMIZED: 612 case ui::SHOW_STATE_MINIMIZED:
606 browser->window()->Minimize(); 613 browser->window()->Minimize();
607 break; 614 break;
608 case ui::SHOW_STATE_MAXIMIZED: 615 case ui::SHOW_STATE_MAXIMIZED:
609 browser->window()->Maximize(); 616 browser->window()->Maximize();
610 break; 617 break;
618 case ui::SHOW_STATE_FULLSCREEN:
619 if (browser->window()->IsMinimized() || browser->window()->IsMaximized())
620 browser->window()->Restore();
621 browser->window()->EnterFullscreen(
yzshen1 2012/02/07 07:57:22 I am a little bit surprised that this doesn't need
hashimoto 2012/02/07 11:53:17 I thought calling Enter/ExitFullscreen is enough b
622 GetExtension()->url(),
623 FEB_TYPE_BROWSER_EXTENSION_TRIGGERED_FULLSCREEN_EXIT_INSTRUCTION);
624 break;
611 case ui::SHOW_STATE_NORMAL: 625 case ui::SHOW_STATE_NORMAL:
612 browser->window()->Restore(); 626 browser->window()->Restore();
613 break; 627 break;
614 default: 628 default:
615 break; 629 break;
616 } 630 }
617 631
618 gfx::Rect bounds = browser->window()->GetRestoredBounds(); 632 gfx::Rect bounds = browser->window()->GetRestoredBounds();
619 bool set_bounds = false; 633 bool set_bounds = false;
620 634
(...skipping 26 matching lines...) Expand all
647 if (update_props->HasKey(keys::kHeightKey)) { 661 if (update_props->HasKey(keys::kHeightKey)) {
648 EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger( 662 EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger(
649 keys::kHeightKey, 663 keys::kHeightKey,
650 &bounds_val)); 664 &bounds_val));
651 bounds.set_height(bounds_val); 665 bounds.set_height(bounds_val);
652 set_bounds = true; 666 set_bounds = true;
653 } 667 }
654 668
655 if (set_bounds) { 669 if (set_bounds) {
656 if (show_state == ui::SHOW_STATE_MINIMIZED || 670 if (show_state == ui::SHOW_STATE_MINIMIZED ||
657 show_state == ui::SHOW_STATE_MAXIMIZED) { 671 show_state == ui::SHOW_STATE_MAXIMIZED ||
672 show_state == ui::SHOW_STATE_FULLSCREEN) {
658 error_ = keys::kInvalidWindowStateError; 673 error_ = keys::kInvalidWindowStateError;
659 return false; 674 return false;
660 } 675 }
661 browser->window()->SetBounds(bounds); 676 browser->window()->SetBounds(bounds);
662 } 677 }
663 678
664 bool active_val = false; 679 bool active_val = false;
665 if (update_props->HasKey(keys::kFocusedKey)) { 680 if (update_props->HasKey(keys::kFocusedKey)) {
666 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean( 681 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean(
667 keys::kFocusedKey, &active_val)); 682 keys::kFocusedKey, &active_val));
668 if (active_val) { 683 if (active_val) {
669 if (show_state == ui::SHOW_STATE_MINIMIZED) { 684 if (show_state == ui::SHOW_STATE_MINIMIZED) {
670 error_ = keys::kInvalidWindowStateError; 685 error_ = keys::kInvalidWindowStateError;
671 return false; 686 return false;
672 } 687 }
673 browser->window()->Activate(); 688 browser->window()->Activate();
674 } else { 689 } else {
675 if (show_state == ui::SHOW_STATE_MAXIMIZED) { 690 if (show_state == ui::SHOW_STATE_MAXIMIZED ||
691 show_state == ui::SHOW_STATE_FULLSCREEN) {
676 error_ = keys::kInvalidWindowStateError; 692 error_ = keys::kInvalidWindowStateError;
677 return false; 693 return false;
678 } 694 }
679 browser->window()->Deactivate(); 695 browser->window()->Deactivate();
680 } 696 }
681 } 697 }
682 698
683 bool draw_attention = false; 699 bool draw_attention = false;
684 if (update_props->HasKey(keys::kDrawAttentionKey)) { 700 if (update_props->HasKey(keys::kDrawAttentionKey)) {
685 EXTENSION_FUNCTION_VALIDATE(update_props->GetBoolean( 701 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. 1724 // called for every API call the extension made.
1709 GotLanguage(language); 1725 GotLanguage(language);
1710 } 1726 }
1711 1727
1712 void DetectTabLanguageFunction::GotLanguage(const std::string& language) { 1728 void DetectTabLanguageFunction::GotLanguage(const std::string& language) {
1713 result_.reset(Value::CreateStringValue(language.c_str())); 1729 result_.reset(Value::CreateStringValue(language.c_str()));
1714 SendResponse(true); 1730 SendResponse(true);
1715 1731
1716 Release(); // Balanced in Run() 1732 Release(); // Balanced in Run()
1717 } 1733 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698