| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include "base/callback.h" |
| 7 #include "base/location.h" | 8 #include "base/location.h" |
| 8 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 9 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| 10 #include "base/strings/stringprintf.h" | 11 #include "base/strings/stringprintf.h" |
| 11 #include "base/threading/thread_task_runner_handle.h" | |
| 12 #include "chrome/browser/extensions/activity_log/activity_log.h" | 12 #include "chrome/browser/extensions/activity_log/activity_log.h" |
| 13 #include "chrome/browser/extensions/extension_apitest.h" | 13 #include "chrome/browser/extensions/extension_apitest.h" |
| 14 #include "chrome/browser/extensions/extension_browsertest.h" | 14 #include "chrome/browser/extensions/extension_browsertest.h" |
| 15 #include "chrome/browser/prerender/prerender_handle.h" | 15 #include "chrome/browser/prerender/prerender_handle.h" |
| 16 #include "chrome/browser/prerender/prerender_manager.h" | 16 #include "chrome/browser/prerender/prerender_manager.h" |
| 17 #include "chrome/browser/prerender/prerender_manager_factory.h" | 17 #include "chrome/browser/prerender/prerender_manager_factory.h" |
| 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 19 #include "chrome/common/chrome_switches.h" | 19 #include "chrome/common/chrome_switches.h" |
| 20 #include "content/public/browser/notification_service.h" | 20 #include "content/public/browser/notification_service.h" |
| 21 #include "content/public/test/browser_test_utils.h" | 21 #include "content/public/test/browser_test_utils.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 35 void SetUpCommandLine(base::CommandLine* command_line) override { | 35 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 36 ExtensionBrowserTest::SetUpCommandLine(command_line); | 36 ExtensionBrowserTest::SetUpCommandLine(command_line); |
| 37 command_line->AppendSwitch(switches::kEnableExtensionActivityLogging); | 37 command_line->AppendSwitch(switches::kEnableExtensionActivityLogging); |
| 38 command_line->AppendSwitchASCII(switches::kPrerenderMode, | 38 command_line->AppendSwitchASCII(switches::kPrerenderMode, |
| 39 switches::kPrerenderModeSwitchValueEnabled); | 39 switches::kPrerenderModeSwitchValueEnabled); |
| 40 } | 40 } |
| 41 | 41 |
| 42 static void Prerender_Arguments( | 42 static void Prerender_Arguments( |
| 43 const std::string& extension_id, | 43 const std::string& extension_id, |
| 44 uint16_t port, | 44 uint16_t port, |
| 45 const base::Closure& quit_when_idle_closure, |
| 45 std::unique_ptr<std::vector<scoped_refptr<Action>>> i) { | 46 std::unique_ptr<std::vector<scoped_refptr<Action>>> i) { |
| 46 // This is to exit RunLoop (base::MessageLoop::current()->Run()) below | 47 quit_when_idle_closure.Run(); |
| 47 base::ThreadTaskRunnerHandle::Get()->PostTask( | |
| 48 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); | |
| 49 | 48 |
| 50 ASSERT_TRUE(i->size()); | 49 ASSERT_TRUE(i->size()); |
| 51 scoped_refptr<Action> last = i->front(); | 50 scoped_refptr<Action> last = i->front(); |
| 52 | 51 |
| 53 ASSERT_EQ(extension_id, last->extension_id()); | 52 ASSERT_EQ(extension_id, last->extension_id()); |
| 54 ASSERT_EQ(Action::ACTION_CONTENT_SCRIPT, last->action_type()); | 53 ASSERT_EQ(Action::ACTION_CONTENT_SCRIPT, last->action_type()); |
| 55 ASSERT_EQ("[\"/google_cs.js\"]", | 54 ASSERT_EQ("[\"/google_cs.js\"]", |
| 56 ActivityLogPolicy::Util::Serialize(last->args())); | 55 ActivityLogPolicy::Util::Serialize(last->args())); |
| 57 ASSERT_EQ( | 56 ASSERT_EQ( |
| 58 base::StringPrintf("http://www.google.com.bo:%u/title1.html", port), | 57 base::StringPrintf("http://www.google.com.bo:%u/title1.html", port), |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 | 104 |
| 106 const gfx::Size kSize(640, 480); | 105 const gfx::Size kSize(640, 480); |
| 107 std::unique_ptr<prerender::PrerenderHandle> prerender_handle( | 106 std::unique_ptr<prerender::PrerenderHandle> prerender_handle( |
| 108 prerender_manager->AddPrerenderFromOmnibox( | 107 prerender_manager->AddPrerenderFromOmnibox( |
| 109 url, | 108 url, |
| 110 web_contents->GetController().GetDefaultSessionStorageNamespace(), | 109 web_contents->GetController().GetDefaultSessionStorageNamespace(), |
| 111 kSize)); | 110 kSize)); |
| 112 | 111 |
| 113 page_observer.Wait(); | 112 page_observer.Wait(); |
| 114 | 113 |
| 114 base::RunLoop run_loop; |
| 115 activity_log->GetFilteredActions( | 115 activity_log->GetFilteredActions( |
| 116 ext->id(), | 116 ext->id(), Action::ACTION_ANY, "", "", "", -1, |
| 117 Action::ACTION_ANY, | 117 base::Bind(ActivityLogPrerenderTest::Prerender_Arguments, ext->id(), port, |
| 118 "", | 118 run_loop.QuitWhenIdleClosure())); |
| 119 "", | |
| 120 "", | |
| 121 -1, | |
| 122 base::Bind( | |
| 123 ActivityLogPrerenderTest::Prerender_Arguments, ext->id(), port)); | |
| 124 | 119 |
| 125 // Allow invocation of Prerender_Arguments | 120 // Allow invocation of Prerender_Arguments |
| 126 base::RunLoop().Run(); | 121 run_loop.Run(); |
| 127 } | 122 } |
| 128 | 123 |
| 129 } // namespace extensions | 124 } // namespace extensions |
| OLD | NEW |