Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |