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

Side by Side Diff: chrome/browser/resources/vr_shell/vr_shell_ui.js

Issue 2721203003: Background correctly adapts to state in Chrome VR. (Closed)
Patch Set: Dark background for fullscreen menu mode Created 3 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 var vrShellUi = (function() { 5 var vrShellUi = (function() {
6 'use strict'; 6 'use strict';
7 7
8 let ui = new scene.Scene(); 8 let ui = new scene.Scene();
9 let uiManager; 9 let uiManager;
10 let nativeCommandHandler; 10 let nativeCommandHandler;
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 b: this.HORIZON_COLOR.b, 602 b: this.HORIZON_COLOR.b,
603 a: 0 603 a: 0
604 }; 604 };
605 groundGrid.setFill(new api.GridGradient( 605 groundGrid.setFill(new api.GridGradient(
606 transparentHorizonColor, this.HORIZON_COLOR, this.GRIDLINE_COUNT)); 606 transparentHorizonColor, this.HORIZON_COLOR, this.GRIDLINE_COUNT));
607 groundGrid.setTranslation(0, -this.SCENE_HEIGHT / 2 + 0.01, 0); 607 groundGrid.setTranslation(0, -this.SCENE_HEIGHT / 2 + 0.01, 0);
608 groundGrid.setRotation(1.0, 0.0, 0.0, -Math.PI / 2); 608 groundGrid.setRotation(1.0, 0.0, 0.0, -Math.PI / 2);
609 groundGrid.setDrawPhase(0); 609 groundGrid.setDrawPhase(0);
610 this.groundGridId = ui.addElement(groundGrid); 610 this.groundGridId = ui.addElement(groundGrid);
611 611
612 this.setHiddenBackground();
613 }
614
615 setElementVisible(elementId, visible) {
616 let update = new api.UiElementUpdate();
617 update.setVisible(visible);
618 ui.updateElement(elementId, update);
619 }
620
621 setLightBackground() {
622 this.setElementVisible(this.groundPlaneId, true);
623 this.setElementVisible(this.ceilingPlaneId, true);
624 this.setElementVisible(this.groundGridId, true);
612 ui.setBackgroundColor(this.HORIZON_COLOR); 625 ui.setBackgroundColor(this.HORIZON_COLOR);
613 } 626 }
614 627
615 setEnabled(enabled) { 628 setDarkBackground() {
616 let groundPlaneUpdate = new api.UiElementUpdate(); 629 this.setElementVisible(this.groundPlaneId, false);
617 groundPlaneUpdate.setVisible(enabled); 630 this.setElementVisible(this.ceilingPlaneId, false);
618 ui.updateElement(this.groundPlaneId, groundPlaneUpdate); 631 this.setElementVisible(this.groundGridId, true);
619 let ceilingPlaneUpdate = new api.UiElementUpdate(); 632 ui.setBackgroundColor(this.FULLSCREEN_BACKGROUND_COLOR);
620 ceilingPlaneUpdate.setVisible(enabled);
621 ui.updateElement(this.ceilingPlaneId, ceilingPlaneUpdate);
622 let groundGridUpdate = new api.UiElementUpdate();
623 groundGridUpdate.setVisible(enabled);
624 ui.updateElement(this.groundGridId, groundGridUpdate);
625 } 633 }
626 634
627 setFullscreen(fullscreen) { 635 setHiddenBackground() {
628 let groundPlaneUpdate = new api.UiElementUpdate(); 636 this.setElementVisible(this.groundPlaneId, false);
629 groundPlaneUpdate.setVisible(!fullscreen); 637 this.setElementVisible(this.ceilingPlaneId, false);
630 ui.updateElement(this.groundPlaneId, groundPlaneUpdate); 638 this.setElementVisible(this.groundGridId, false);
631 let ceilingPlaneUpdate = new api.UiElementUpdate(); 639 ui.setBackgroundColor(this.FULLSCREEN_BACKGROUND_COLOR);
632 ceilingPlaneUpdate.setVisible(!fullscreen); 640 }
633 ui.updateElement(this.ceilingPlaneId, ceilingPlaneUpdate);
634 641
635 // Set darker background color for fullscreen since the user might 642 setState(mode, menuMode, fullscreen) {
636 // potentially watch a video. 643 switch (mode) {
637 if (fullscreen) { 644 case api.Mode.STANDARD:
638 ui.setBackgroundColor(this.FULLSCREEN_BACKGROUND_COLOR); 645 if (fullscreen) {
639 } else { 646 this.setDarkBackground();
640 ui.setBackgroundColor(this.HORIZON_COLOR); 647 } else {
648 this.setLightBackground();
649 }
650 break;
651 case api.Mode.WEB_VR:
652 if (menuMode) {
653 this.setLightBackground();
654 } else {
655 this.setHiddenBackground();
656 }
657 break;
641 } 658 }
642 } 659 }
643 }; 660 };
644 661
645 class Omnibox { 662 class Omnibox {
646 constructor() { 663 constructor() {
647 this.enabled = false; 664 this.enabled = false;
648 665
649 this.domUiElement = new DomUiElement('#omnibox-ui-element'); 666 this.domUiElement = new DomUiElement('#omnibox-ui-element');
650 let root = this.domUiElement.domElement; 667 let root = this.domUiElement.domElement;
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 handleAppButtonClicked() { 929 handleAppButtonClicked() {
913 this.menuMode = !this.menuMode; 930 this.menuMode = !this.menuMode;
914 this.updateState(); 931 this.updateState();
915 } 932 }
916 933
917 updateState() { 934 updateState() {
918 /** @const */ var URL_INDICATOR_VISIBILITY_TIMEOUT_MS = 5000; 935 /** @const */ var URL_INDICATOR_VISIBILITY_TIMEOUT_MS = 5000;
919 936
920 let mode = this.mode; 937 let mode = this.mode;
921 let menuMode = this.menuMode; 938 let menuMode = this.menuMode;
939 let fullscreen = this.fullscreen;
922 940
923 api.doAction(api.Action.SET_CONTENT_PAUSED, {'paused': menuMode}); 941 api.doAction(api.Action.SET_CONTENT_PAUSED, {'paused': menuMode});
924 942
925 this.background.setEnabled(mode == api.Mode.STANDARD);
926 this.contentQuad.setEnabled(mode == api.Mode.STANDARD); 943 this.contentQuad.setEnabled(mode == api.Mode.STANDARD);
927 this.contentQuad.setFullscreen(this.fullscreen); 944 this.contentQuad.setFullscreen(fullscreen);
928 this.contentQuad.setMenuMode(menuMode); 945 this.contentQuad.setMenuMode(menuMode);
929 // TODO(crbug/643815): Set aspect ratio on content quad when available. 946 // TODO(crbug/643815): Set aspect ratio on content quad when available.
930 this.controls.setEnabled(menuMode); 947 this.controls.setEnabled(menuMode);
931 this.omnibox.setEnabled(menuMode); 948 this.omnibox.setEnabled(menuMode);
932 this.urlIndicator.setEnabled(mode == api.Mode.STANDARD && !menuMode); 949 this.urlIndicator.setEnabled(mode == api.Mode.STANDARD && !menuMode);
933 this.urlIndicator.setVisibilityTimeout( 950 this.urlIndicator.setVisibilityTimeout(
934 URL_INDICATOR_VISIBILITY_TIMEOUT_MS); 951 URL_INDICATOR_VISIBILITY_TIMEOUT_MS);
935 this.secureOriginWarnings.setEnabled( 952 this.secureOriginWarnings.setEnabled(
936 mode == api.Mode.WEB_VR && !menuMode); 953 mode == api.Mode.WEB_VR && !menuMode);
937 this.background.setEnabled(mode == api.Mode.STANDARD || menuMode); 954 this.background.setState(mode, menuMode, fullscreen);
938 this.background.setFullscreen(this.fullscreen);
939 this.tabContainer.setEnabled(mode == api.Mode.STANDARD && menuMode); 955 this.tabContainer.setEnabled(mode == api.Mode.STANDARD && menuMode);
940 956
941 this.reloadUiButton.setEnabled(mode == api.Mode.STANDARD); 957 this.reloadUiButton.setEnabled(mode == api.Mode.STANDARD);
942 this.keyboard.setEnabled(mode == api.Mode.STANDARD); 958 this.keyboard.setEnabled(mode == api.Mode.STANDARD);
943 959
944 api.setUiCssSize( 960 api.setUiCssSize(
945 uiRootElement.clientWidth, uiRootElement.clientHeight, UI_DPR); 961 uiRootElement.clientWidth, uiRootElement.clientHeight, UI_DPR);
946 } 962 }
947 963
948 setSecurityLevel(level) { 964 setSecurityLevel(level) {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 nativeCommandHandler.handleCommand(dict); 1064 nativeCommandHandler.handleCommand(dict);
1049 } 1065 }
1050 1066
1051 return { 1067 return {
1052 initialize: initialize, 1068 initialize: initialize,
1053 command: command, 1069 command: command,
1054 }; 1070 };
1055 })(); 1071 })();
1056 1072
1057 window.addEventListener('load', vrShellUi.initialize); 1073 window.addEventListener('load', vrShellUi.initialize);
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698