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 <algorithm> | 5 #include <algorithm> |
6 #include <string> | 6 #include <string> |
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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 #include "ui/base/resource/resource_bundle.h" | 157 #include "ui/base/resource/resource_bundle.h" |
158 #include "url/gurl.h" | 158 #include "url/gurl.h" |
159 | 159 |
160 #if defined(OS_CHROMEOS) | 160 #if defined(OS_CHROMEOS) |
161 #include "ash/accelerators/accelerator_controller.h" | 161 #include "ash/accelerators/accelerator_controller.h" |
162 #include "ash/accelerators/accelerator_table.h" | 162 #include "ash/accelerators/accelerator_table.h" |
163 #include "ash/shell.h" | 163 #include "ash/shell.h" |
164 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 164 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
165 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" | 165 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" |
166 #include "chrome/browser/profiles/profile_manager.h" | 166 #include "chrome/browser/profiles/profile_manager.h" |
167 #include "chrome/browser/ui/ash/screenshot_taker.h" | 167 #include "chrome/browser/ui/ash/chrome_screenshot_grabber.h" |
168 #include "chromeos/audio/cras_audio_handler.h" | 168 #include "chromeos/audio/cras_audio_handler.h" |
169 #include "ui/chromeos/accessibility_types.h" | 169 #include "ui/chromeos/accessibility_types.h" |
170 #include "ui/keyboard/keyboard_util.h" | 170 #include "ui/keyboard/keyboard_util.h" |
| 171 #include "ui/snapshot/screenshot_grabber.h" |
171 #endif | 172 #endif |
172 | 173 |
173 #if !defined(OS_MACOSX) | 174 #if !defined(OS_MACOSX) |
174 #include "base/basictypes.h" | 175 #include "base/basictypes.h" |
175 #include "base/compiler_specific.h" | 176 #include "base/compiler_specific.h" |
176 #include "chrome/browser/ui/extensions/application_launch.h" | 177 #include "chrome/browser/ui/extensions/application_launch.h" |
177 #include "extensions/browser/app_window/app_window.h" | 178 #include "extensions/browser/app_window/app_window.h" |
178 #include "extensions/browser/app_window/app_window_registry.h" | 179 #include "extensions/browser/app_window/app_window_registry.h" |
179 #include "extensions/browser/app_window/native_app_window.h" | 180 #include "extensions/browser/app_window/native_app_window.h" |
180 #include "ui/base/window_open_disposition.h" | 181 #include "ui/base/window_open_disposition.h" |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 PolicyMap policies; | 648 PolicyMap policies; |
648 policies.Set(key::kDisableScreenshots, | 649 policies.Set(key::kDisableScreenshots, |
649 POLICY_LEVEL_MANDATORY, | 650 POLICY_LEVEL_MANDATORY, |
650 POLICY_SCOPE_USER, | 651 POLICY_SCOPE_USER, |
651 new base::FundamentalValue(!enabled), | 652 new base::FundamentalValue(!enabled), |
652 NULL); | 653 NULL); |
653 UpdateProviderPolicy(policies); | 654 UpdateProviderPolicy(policies); |
654 } | 655 } |
655 | 656 |
656 #if defined(OS_CHROMEOS) | 657 #if defined(OS_CHROMEOS) |
657 class QuitMessageLoopAfterScreenshot : public ScreenshotTakerObserver { | 658 class QuitMessageLoopAfterScreenshot : public ui::ScreenshotGrabberObserver { |
658 public: | 659 public: |
659 virtual void OnScreenshotCompleted( | 660 virtual void OnScreenshotCompleted( |
660 ScreenshotTakerObserver::Result screenshot_result, | 661 ScreenshotGrabberObserver::Result screenshot_result, |
661 const base::FilePath& screenshot_path) override { | 662 const base::FilePath& screenshot_path) override { |
662 BrowserThread::PostTaskAndReply(BrowserThread::IO, | 663 BrowserThread::PostTaskAndReply(BrowserThread::IO, |
663 FROM_HERE, | 664 FROM_HERE, |
664 base::Bind(base::DoNothing), | 665 base::Bind(base::DoNothing), |
665 base::MessageLoop::QuitClosure()); | 666 base::MessageLoop::QuitClosure()); |
666 } | 667 } |
667 | 668 |
668 virtual ~QuitMessageLoopAfterScreenshot() {} | 669 virtual ~QuitMessageLoopAfterScreenshot() {} |
669 }; | 670 }; |
670 | 671 |
671 void TestScreenshotFile(bool enabled) { | 672 void TestScreenshotFile(bool enabled) { |
672 // AddObserver is an ash-specific method, so just replace the screenshot | 673 // AddObserver is an ash-specific method, so just replace the screenshot |
673 // taker with one we've created here. | 674 // grabber with one we've created here. |
674 scoped_ptr<ScreenshotTaker> screenshot_taker(new ScreenshotTaker); | 675 scoped_ptr<ChromeScreenshotGrabber> chrome_screenshot_grabber( |
675 // ScreenshotTaker doesn't own this observer, so the observer's lifetime | 676 new ChromeScreenshotGrabber); |
| 677 // ScreenshotGrabber doesn't own this observer, so the observer's lifetime |
676 // is tied to the test instead. | 678 // is tied to the test instead. |
677 screenshot_taker->AddObserver(&observer_); | 679 chrome_screenshot_grabber->screenshot_grabber()->AddObserver(&observer_); |
678 ash::Shell::GetInstance()->accelerator_controller()->SetScreenshotDelegate( | 680 ash::Shell::GetInstance()->accelerator_controller()->SetScreenshotDelegate( |
679 screenshot_taker.Pass()); | 681 chrome_screenshot_grabber.Pass()); |
680 | 682 |
681 SetScreenshotPolicy(enabled); | 683 SetScreenshotPolicy(enabled); |
682 ash::Shell::GetInstance()->accelerator_controller()->PerformActionIfEnabled( | 684 ash::Shell::GetInstance()->accelerator_controller()->PerformActionIfEnabled( |
683 ash::TAKE_SCREENSHOT); | 685 ash::TAKE_SCREENSHOT); |
684 | 686 |
685 content::RunMessageLoop(); | 687 content::RunMessageLoop(); |
| 688 static_cast<ChromeScreenshotGrabber*>(ash::Shell::GetInstance() |
| 689 ->accelerator_controller() |
| 690 ->screenshot_delegate()) |
| 691 ->screenshot_grabber() |
| 692 ->RemoveObserver(&observer_); |
686 } | 693 } |
687 #endif | 694 #endif |
688 | 695 |
689 ExtensionService* extension_service() { | 696 ExtensionService* extension_service() { |
690 extensions::ExtensionSystem* system = | 697 extensions::ExtensionSystem* system = |
691 extensions::ExtensionSystem::Get(browser()->profile()); | 698 extensions::ExtensionSystem::Get(browser()->profile()); |
692 return system->extension_service(); | 699 return system->extension_service(); |
693 } | 700 } |
694 | 701 |
695 const extensions::Extension* InstallExtension( | 702 const extensions::Extension* InstallExtension( |
(...skipping 2732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3428 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( | 3435 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( |
3429 browser2->tab_strip_model()->GetActiveWebContents(), | 3436 browser2->tab_strip_model()->GetActiveWebContents(), |
3430 "domAutomationController.send(window.showModalDialog !== undefined);", | 3437 "domAutomationController.send(window.showModalDialog !== undefined);", |
3431 &result)); | 3438 &result)); |
3432 EXPECT_TRUE(result); | 3439 EXPECT_TRUE(result); |
3433 } | 3440 } |
3434 | 3441 |
3435 #endif // !defined(CHROME_OS) | 3442 #endif // !defined(CHROME_OS) |
3436 | 3443 |
3437 } // namespace policy | 3444 } // namespace policy |
OLD | NEW |