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

Side by Side Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc

Issue 2171813004: mash: Fold ShelfItemDelegateManager into ShelfModel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: explicitly destroy ShelfItemDelegates Created 4 years, 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.h" 5 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
11 #include <memory> 11 #include <memory>
12 #include <set> 12 #include <set>
13 #include <string> 13 #include <string>
14 #include <utility> 14 #include <utility>
15 #include <vector> 15 #include <vector>
16 16
17 #include "ash/common/ash_switches.h" 17 #include "ash/common/ash_switches.h"
18 #include "ash/common/shelf/shelf_item_delegate_manager.h"
19 #include "ash/common/shelf/shelf_model.h" 18 #include "ash/common/shelf/shelf_model.h"
20 #include "ash/common/shelf/shelf_model_observer.h" 19 #include "ash/common/shelf/shelf_model_observer.h"
21 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" 20 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
22 #include "ash/common/wm_shell.h" 21 #include "ash/common/wm_shell.h"
23 #include "ash/display/screen_orientation_controller_chromeos.h" 22 #include "ash/display/screen_orientation_controller_chromeos.h"
24 #include "ash/shell.h" 23 #include "ash/shell.h"
25 #include "ash/test/ash_test_helper.h" 24 #include "ash/test/ash_test_helper.h"
26 #include "ash/test/shelf_item_delegate_manager_test_api.h"
27 #include "ash/test/test_session_state_delegate.h" 25 #include "ash/test/test_session_state_delegate.h"
28 #include "ash/test/test_shell_delegate.h" 26 #include "ash/test/test_shell_delegate.h"
29 #include "ash/wm/window_util.h" 27 #include "ash/wm/window_util.h"
30 #include "base/command_line.h" 28 #include "base/command_line.h"
31 #include "base/compiler_specific.h" 29 #include "base/compiler_specific.h"
32 #include "base/files/file_path.h" 30 #include "base/files/file_path.h"
33 #include "base/location.h" 31 #include "base/location.h"
34 #include "base/macros.h" 32 #include "base/macros.h"
35 #include "base/memory/ptr_util.h" 33 #include "base/memory/ptr_util.h"
36 #include "base/message_loop/message_loop.h" 34 #include "base/message_loop/message_loop.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 145
148 void ShelfItemChanged(int index, const ash::ShelfItem& old_item) override { 146 void ShelfItemChanged(int index, const ash::ShelfItem& old_item) override {
149 ++changed_; 147 ++changed_;
150 last_index_ = index; 148 last_index_ = index;
151 } 149 }
152 150
153 void ShelfItemMoved(int start_index, int target_index) override { 151 void ShelfItemMoved(int start_index, int target_index) override {
154 last_index_ = target_index; 152 last_index_ = target_index;
155 } 153 }
156 154
155 void OnSetShelfItemDelegate(ash::ShelfID id,
156 ash::ShelfItemDelegate* item_delegate) override {}
157
157 void clear_counts() { 158 void clear_counts() {
158 added_ = 0; 159 added_ = 0;
159 removed_ = 0; 160 removed_ = 0;
160 changed_ = 0; 161 changed_ = 0;
161 last_index_ = 0; 162 last_index_ = 0;
162 } 163 }
163 164
164 int added() const { return added_; } 165 int added() const { return added_; }
165 int removed() const { return removed_; } 166 int removed() const { return removed_; }
166 int changed() const { return changed_; } 167 int changed() const { return changed_; }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 if (!profile_manager_) { 324 if (!profile_manager_) {
324 profile_manager_.reset( 325 profile_manager_.reset(
325 new TestingProfileManager(TestingBrowserProcess::GetGlobal())); 326 new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
326 ASSERT_TRUE(profile_manager_->SetUp()); 327 ASSERT_TRUE(profile_manager_->SetUp());
327 } 328 }
328 329
329 model_.reset(new ash::ShelfModel); 330 model_.reset(new ash::ShelfModel);
330 model_observer_.reset(new TestShelfModelObserver); 331 model_observer_.reset(new TestShelfModelObserver);
331 model_->AddObserver(model_observer_.get()); 332 model_->AddObserver(model_observer_.get());
332 333
333 if (ash::Shell::HasInstance()) {
334 item_delegate_manager_ =
335 ash::Shell::GetInstance()->shelf_item_delegate_manager();
336 } else {
337 item_delegate_manager_ =
338 new ash::ShelfItemDelegateManager(model_.get());
339 }
340
341 base::DictionaryValue manifest; 334 base::DictionaryValue manifest;
342 manifest.SetString(extensions::manifest_keys::kName, 335 manifest.SetString(extensions::manifest_keys::kName,
343 "launcher controller test extension"); 336 "launcher controller test extension");
344 manifest.SetString(extensions::manifest_keys::kVersion, "1"); 337 manifest.SetString(extensions::manifest_keys::kVersion, "1");
345 manifest.SetString(extensions::manifest_keys::kDescription, 338 manifest.SetString(extensions::manifest_keys::kDescription,
346 "for testing pinned apps"); 339 "for testing pinned apps");
347 340
348 extensions::TestExtensionSystem* extension_system( 341 extensions::TestExtensionSystem* extension_system(
349 static_cast<extensions::TestExtensionSystem*>( 342 static_cast<extensions::TestExtensionSystem*>(
350 extensions::ExtensionSystem::Get(profile()))); 343 extensions::ExtensionSystem::Get(profile())));
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 InsertAddPinChange(user_a, 6, extension_misc::kChromeAppId); 459 InsertAddPinChange(user_a, 6, extension_misc::kChromeAppId);
467 460
468 // Set user b preferences. 461 // Set user b preferences.
469 InsertAddPinChange(user_b, 0, extension7_->id()); 462 InsertAddPinChange(user_b, 0, extension7_->id());
470 InsertAddPinChange(user_b, 1, extension8_->id()); 463 InsertAddPinChange(user_b, 1, extension8_->id());
471 InsertAddPinChange(user_b, 2, extension_misc::kChromeAppId); 464 InsertAddPinChange(user_b, 2, extension_misc::kChromeAppId);
472 } 465 }
473 466
474 void TearDown() override { 467 void TearDown() override {
475 arc_test_.TearDown(); 468 arc_test_.TearDown();
476 launcher_controller_->SetShelfItemDelegateManagerForTest(nullptr);
477 model_->RemoveObserver(model_observer_.get()); 469 model_->RemoveObserver(model_observer_.get());
478 model_observer_.reset(); 470 model_observer_.reset();
479 launcher_controller_.reset(); 471 launcher_controller_.reset();
480 472
481 // item_delegate_manager_ must be deleted after launch_controller_, 473 // |model_| must be deleted after |launch_controller_|, because
482 // because launch_controller_ has a map of pointers to the data 474 // |launch_controller_| has a map of pointers to the data held by |model_|.
483 // hold by item_delegate_manager_.
484 if (!ash::Shell::HasInstance())
485 delete item_delegate_manager_;
486
487 model_.reset(); 475 model_.reset();
488 476
489 BrowserWithTestWindowTest::TearDown(); 477 BrowserWithTestWindowTest::TearDown();
490 } 478 }
491 479
492 BrowserWindow* CreateBrowserWindow() override { 480 BrowserWindow* CreateBrowserWindow() override {
493 return CreateTestBrowserWindowAura(); 481 return CreateTestBrowserWindowAura();
494 } 482 }
495 483
496 std::unique_ptr<Browser> CreateBrowserWithTestWindowForProfile( 484 std::unique_ptr<Browser> CreateBrowserWithTestWindowForProfile(
497 Profile* profile) { 485 Profile* profile) {
498 TestBrowserWindow* browser_window = CreateTestBrowserWindowAura(); 486 TestBrowserWindow* browser_window = CreateTestBrowserWindowAura();
499 new TestBrowserWindowOwner(browser_window); 487 new TestBrowserWindowOwner(browser_window);
500 return base::WrapUnique( 488 return base::WrapUnique(
501 CreateBrowser(profile, Browser::TYPE_TABBED, false, browser_window)); 489 CreateBrowser(profile, Browser::TYPE_TABBED, false, browser_window));
502 } 490 }
503 491
504 void AddAppListLauncherItem() { 492 void AddAppListLauncherItem() {
505 ash::ShelfItem app_list; 493 ash::ShelfItem app_list;
506 app_list.type = ash::TYPE_APP_LIST; 494 app_list.type = ash::TYPE_APP_LIST;
507 model_->Add(app_list); 495 model_->Add(app_list);
508 } 496 }
509 497
510 void InitLauncherController() { 498 void InitLauncherController() {
511 AddAppListLauncherItem(); 499 AddAppListLauncherItem();
512 launcher_controller_.reset( 500 launcher_controller_.reset(
513 new ChromeLauncherControllerImpl(profile(), model_.get())); 501 new ChromeLauncherControllerImpl(profile(), model_.get()));
514 if (!ash::Shell::HasInstance())
515 SetShelfItemDelegateManager(item_delegate_manager_);
516 launcher_controller_->Init(); 502 launcher_controller_->Init();
517 } 503 }
518 504
519 void InitLauncherControllerWithBrowser() { 505 void InitLauncherControllerWithBrowser() {
520 InitLauncherController(); 506 InitLauncherController();
521 chrome::NewTab(browser()); 507 chrome::NewTab(browser());
522 browser()->window()->Show(); 508 browser()->window()->Show();
523 } 509 }
524 510
525 void RecreateChromeLauncher() { 511 void RecreateChromeLauncher() {
(...skipping 27 matching lines...) Expand all
553 std::vector<std::unique_ptr<AppIconLoader>> loaders; 539 std::vector<std::unique_ptr<AppIconLoader>> loaders;
554 loaders.push_back(std::move(loader1)); 540 loaders.push_back(std::move(loader1));
555 loaders.push_back(std::move(loader2)); 541 loaders.push_back(std::move(loader2));
556 launcher_controller_->SetAppIconLoadersForTest(loaders); 542 launcher_controller_->SetAppIconLoadersForTest(loaders);
557 } 543 }
558 544
559 void SetLauncherControllerHelper(LauncherControllerHelper* helper) { 545 void SetLauncherControllerHelper(LauncherControllerHelper* helper) {
560 launcher_controller_->SetLauncherControllerHelperForTest(helper); 546 launcher_controller_->SetLauncherControllerHelperForTest(helper);
561 } 547 }
562 548
563 void SetShelfItemDelegateManager(ash::ShelfItemDelegateManager* manager) {
564 launcher_controller_->SetShelfItemDelegateManagerForTest(manager);
565 }
566
567 void InsertPrefValue(base::ListValue* pref_value, 549 void InsertPrefValue(base::ListValue* pref_value,
568 int index, 550 int index,
569 const std::string& extension_id) { 551 const std::string& extension_id) {
570 base::DictionaryValue* entry = new base::DictionaryValue(); 552 base::DictionaryValue* entry = new base::DictionaryValue();
571 entry->SetString(ash::launcher::kPinnedAppsPrefAppIDPath, extension_id); 553 entry->SetString(ash::launcher::kPinnedAppsPrefAppIDPath, extension_id);
572 pref_value->Insert(index, entry); 554 pref_value->Insert(index, entry);
573 } 555 }
574 556
575 void InsertRemoveAllPinsChange(syncer::SyncChangeList* list) { 557 void InsertRemoveAllPinsChange(syncer::SyncChangeList* list) {
576 for (const auto& sync_peer : app_service_->sync_items()) { 558 for (const auto& sync_peer : app_service_->sync_items()) {
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 std::unique_ptr<ash::ShelfModel> model_; 909 std::unique_ptr<ash::ShelfModel> model_;
928 std::unique_ptr<TestingProfileManager> profile_manager_; 910 std::unique_ptr<TestingProfileManager> profile_manager_;
929 911
930 // |item_delegate_manager_| owns |test_controller_|. 912 // |item_delegate_manager_| owns |test_controller_|.
931 LauncherItemController* test_controller_; 913 LauncherItemController* test_controller_;
932 914
933 ExtensionService* extension_service_; 915 ExtensionService* extension_service_;
934 916
935 app_list::AppListSyncableService* app_service_; 917 app_list::AppListSyncableService* app_service_;
936 918
937 ash::ShelfItemDelegateManager* item_delegate_manager_;
938
939 private: 919 private:
940 TestBrowserWindow* CreateTestBrowserWindowAura() { 920 TestBrowserWindow* CreateTestBrowserWindowAura() {
941 std::unique_ptr<aura::Window> window(new aura::Window(nullptr)); 921 std::unique_ptr<aura::Window> window(new aura::Window(nullptr));
942 window->set_id(0); 922 window->set_id(0);
943 window->SetType(ui::wm::WINDOW_TYPE_NORMAL); 923 window->SetType(ui::wm::WINDOW_TYPE_NORMAL);
944 window->Init(ui::LAYER_TEXTURED); 924 window->Init(ui::LAYER_TEXTURED);
945 aura::client::ParentWindowWithContext(window.get(), GetContext(), 925 aura::client::ParentWindowWithContext(window.get(), GetContext(),
946 gfx::Rect(200, 200)); 926 gfx::Rect(200, 200));
947 927
948 return new TestBrowserWindowAura(std::move(window)); 928 return new TestBrowserWindowAura(std::move(window));
(...skipping 2275 matching lines...) Expand 10 before | Expand all | Expand 10 after
3224 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type); 3204 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
3225 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[3].type); 3205 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[3].type);
3226 3206
3227 // Move browser shortcut item from index 1 to index 3. 3207 // Move browser shortcut item from index 1 to index 3.
3228 model_->Move(1, 3); 3208 model_->Move(1, 3);
3229 EXPECT_EQ(ash::TYPE_APP_LIST, model_->items()[0].type); 3209 EXPECT_EQ(ash::TYPE_APP_LIST, model_->items()[0].type);
3230 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 3210 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type);
3231 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type); 3211 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
3232 EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[3].type); 3212 EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[3].type);
3233 3213
3234 SetShelfItemDelegateManager(nullptr);
3235 launcher_controller_.reset(); 3214 launcher_controller_.reset();
3236 if (!ash::Shell::HasInstance()) {
3237 delete item_delegate_manager_;
3238 } else {
3239 // Clear already registered ShelfItemDelegate.
3240 ash::test::ShelfItemDelegateManagerTestAPI test(item_delegate_manager_);
3241 test.RemoveAllShelfItemDelegateForTest();
3242 }
3243 model_.reset(new ash::ShelfModel); 3215 model_.reset(new ash::ShelfModel);
3244 3216
3245 AddAppListLauncherItem(); 3217 AddAppListLauncherItem();
3246 launcher_controller_.reset( 3218 launcher_controller_.reset(
3247 ChromeLauncherControllerImpl::CreateInstance(profile(), model_.get())); 3219 ChromeLauncherControllerImpl::CreateInstance(profile(), model_.get()));
3248 helper = new TestLauncherControllerHelper(profile()); 3220 helper = new TestLauncherControllerHelper(profile());
3249 helper->SetAppID(tab_strip_model->GetWebContentsAt(0), "1"); 3221 helper->SetAppID(tab_strip_model->GetWebContentsAt(0), "1");
3250 helper->SetAppID(tab_strip_model->GetWebContentsAt(1), "2"); 3222 helper->SetAppID(tab_strip_model->GetWebContentsAt(1), "2");
3251 SetLauncherControllerHelper(helper); 3223 SetLauncherControllerHelper(helper);
3252 if (!ash::Shell::HasInstance()) {
3253 item_delegate_manager_ = new ash::ShelfItemDelegateManager(model_.get());
3254 SetShelfItemDelegateManager(item_delegate_manager_);
3255 }
3256 launcher_controller_->Init(); 3224 launcher_controller_->Init();
3257 3225
3258 // Check ShelfItems are restored after resetting ChromeLauncherControllerImpl. 3226 // Check ShelfItems are restored after resetting ChromeLauncherControllerImpl.
3259 EXPECT_EQ(ash::TYPE_APP_LIST, model_->items()[0].type); 3227 EXPECT_EQ(ash::TYPE_APP_LIST, model_->items()[0].type);
3260 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 3228 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type);
3261 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type); 3229 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
3262 EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[3].type); 3230 EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[3].type);
3263 } 3231 }
3264 3232
3265 // Verifies pinned apps are persisted and restored. 3233 // Verifies pinned apps are persisted and restored.
(...skipping 16 matching lines...) Expand all
3282 3250
3283 launcher_controller_->PinAppWithID("1"); 3251 launcher_controller_->PinAppWithID("1");
3284 ash::ShelfID id = launcher_controller_->GetShelfIDForAppID("1"); 3252 ash::ShelfID id = launcher_controller_->GetShelfIDForAppID("1");
3285 int app_index = model_->ItemIndexByID(id); 3253 int app_index = model_->ItemIndexByID(id);
3286 EXPECT_EQ(1, app_icon_loader->fetch_count()); 3254 EXPECT_EQ(1, app_icon_loader->fetch_count());
3287 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[app_index].type); 3255 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[app_index].type);
3288 EXPECT_TRUE(launcher_controller_->IsAppPinned("1")); 3256 EXPECT_TRUE(launcher_controller_->IsAppPinned("1"));
3289 EXPECT_FALSE(launcher_controller_->IsAppPinned("0")); 3257 EXPECT_FALSE(launcher_controller_->IsAppPinned("0"));
3290 EXPECT_EQ(initial_size + 1, model_->items().size()); 3258 EXPECT_EQ(initial_size + 1, model_->items().size());
3291 3259
3292 SetShelfItemDelegateManager(nullptr);
3293 launcher_controller_.reset(); 3260 launcher_controller_.reset();
3294 if (!ash::Shell::HasInstance()) {
3295 delete item_delegate_manager_;
3296 } else {
3297 // Clear already registered ShelfItemDelegate.
3298 ash::test::ShelfItemDelegateManagerTestAPI test(item_delegate_manager_);
3299 test.RemoveAllShelfItemDelegateForTest();
3300 }
3301 model_.reset(new ash::ShelfModel); 3261 model_.reset(new ash::ShelfModel);
3302 3262
3303 AddAppListLauncherItem(); 3263 AddAppListLauncherItem();
3304 launcher_controller_.reset( 3264 launcher_controller_.reset(
3305 ChromeLauncherControllerImpl::CreateInstance(profile(), model_.get())); 3265 ChromeLauncherControllerImpl::CreateInstance(profile(), model_.get()));
3306 helper = new TestLauncherControllerHelper(profile()); 3266 helper = new TestLauncherControllerHelper(profile());
3307 helper->SetAppID(tab_strip_model->GetWebContentsAt(0), "1"); 3267 helper->SetAppID(tab_strip_model->GetWebContentsAt(0), "1");
3308 SetLauncherControllerHelper(helper); 3268 SetLauncherControllerHelper(helper);
3309 // app_icon_loader is owned by ChromeLauncherControllerImpl. 3269 // app_icon_loader is owned by ChromeLauncherControllerImpl.
3310 app_icon_loader = new TestAppIconLoaderImpl; 3270 app_icon_loader = new TestAppIconLoaderImpl;
3311 app_icon_loader->AddSupportedApp("1"); 3271 app_icon_loader->AddSupportedApp("1");
3312 SetAppIconLoader(std::unique_ptr<AppIconLoader>(app_icon_loader)); 3272 SetAppIconLoader(std::unique_ptr<AppIconLoader>(app_icon_loader));
3313 if (!ash::Shell::HasInstance()) {
3314 item_delegate_manager_ = new ash::ShelfItemDelegateManager(model_.get());
3315 SetShelfItemDelegateManager(item_delegate_manager_);
3316 }
3317 launcher_controller_->Init(); 3273 launcher_controller_->Init();
3318 3274
3319 EXPECT_EQ(1, app_icon_loader->fetch_count()); 3275 EXPECT_EQ(1, app_icon_loader->fetch_count());
3320 ASSERT_EQ(initial_size + 1, model_->items().size()); 3276 ASSERT_EQ(initial_size + 1, model_->items().size());
3321 EXPECT_TRUE(launcher_controller_->IsAppPinned("1")); 3277 EXPECT_TRUE(launcher_controller_->IsAppPinned("1"));
3322 EXPECT_FALSE(launcher_controller_->IsAppPinned("0")); 3278 EXPECT_FALSE(launcher_controller_->IsAppPinned("0"));
3323 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[app_index].type); 3279 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[app_index].type);
3324 3280
3325 launcher_controller_->UnpinAppWithID("1"); 3281 launcher_controller_->UnpinAppWithID("1");
3326 ASSERT_EQ(initial_size, model_->items().size()); 3282 ASSERT_EQ(initial_size, model_->items().size());
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
3698 EXPECT_FALSE(controller->rotation_locked()); 3654 EXPECT_FALSE(controller->rotation_locked());
3699 EXPECT_EQ(display::Display::ROTATE_0, 3655 EXPECT_EQ(display::Display::ROTATE_0,
3700 display::Screen::GetScreen()->GetPrimaryDisplay().rotation()); 3656 display::Screen::GetScreen()->GetPrimaryDisplay().rotation());
3701 3657
3702 NotifyOnTaskOrientationLockRequested(task_id_current_, 3658 NotifyOnTaskOrientationLockRequested(task_id_current_,
3703 OrientationLock::CURRENT); 3659 OrientationLock::CURRENT);
3704 EXPECT_TRUE(controller->rotation_locked()); 3660 EXPECT_TRUE(controller->rotation_locked());
3705 EXPECT_EQ(display::Display::ROTATE_0, 3661 EXPECT_EQ(display::Display::ROTATE_0,
3706 display::Screen::GetScreen()->GetPrimaryDisplay().rotation()); 3662 display::Screen::GetScreen()->GetPrimaryDisplay().rotation());
3707 } 3663 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698