| Index: chrome/browser/resources/md_history/app.crisper.js
|
| diff --git a/chrome/browser/resources/md_history/app.crisper.js b/chrome/browser/resources/md_history/app.crisper.js
|
| index 3ab73306700f8a6d1057220b40a46f1c5c73a999..e22968d2315849da995193453caa80ebed9073e6 100644
|
| --- a/chrome/browser/resources/md_history/app.crisper.js
|
| +++ b/chrome/browser/resources/md_history/app.crisper.js
|
| @@ -1833,6 +1833,95 @@ Polymer({
|
| }
|
| });
|
|
|
| +Polymer.IronScrollTargetBehavior = {
|
| + properties: {
|
| + scrollTarget: {
|
| + type: HTMLElement,
|
| + value: function() {
|
| + return this._defaultScrollTarget;
|
| + }
|
| + }
|
| + },
|
| + observers: [ '_scrollTargetChanged(scrollTarget, isAttached)' ],
|
| + _scrollTargetChanged: function(scrollTarget, isAttached) {
|
| + var eventTarget;
|
| + if (this._oldScrollTarget) {
|
| + eventTarget = this._oldScrollTarget === this._doc ? window : this._oldScrollTarget;
|
| + eventTarget.removeEventListener('scroll', this._boundScrollHandler);
|
| + this._oldScrollTarget = null;
|
| + }
|
| + if (!isAttached) {
|
| + return;
|
| + }
|
| + if (scrollTarget === 'document') {
|
| + this.scrollTarget = this._doc;
|
| + } else if (typeof scrollTarget === 'string') {
|
| + this.scrollTarget = this.domHost ? this.domHost.$[scrollTarget] : Polymer.dom(this.ownerDocument).querySelector('#' + scrollTarget);
|
| + } else if (this._isValidScrollTarget()) {
|
| + eventTarget = scrollTarget === this._doc ? window : scrollTarget;
|
| + this._boundScrollHandler = this._boundScrollHandler || this._scrollHandler.bind(this);
|
| + this._oldScrollTarget = scrollTarget;
|
| + eventTarget.addEventListener('scroll', this._boundScrollHandler);
|
| + }
|
| + },
|
| + _scrollHandler: function scrollHandler() {},
|
| + get _defaultScrollTarget() {
|
| + return this._doc;
|
| + },
|
| + get _doc() {
|
| + return this.ownerDocument.documentElement;
|
| + },
|
| + get _scrollTop() {
|
| + if (this._isValidScrollTarget()) {
|
| + return this.scrollTarget === this._doc ? window.pageYOffset : this.scrollTarget.scrollTop;
|
| + }
|
| + return 0;
|
| + },
|
| + get _scrollLeft() {
|
| + if (this._isValidScrollTarget()) {
|
| + return this.scrollTarget === this._doc ? window.pageXOffset : this.scrollTarget.scrollLeft;
|
| + }
|
| + return 0;
|
| + },
|
| + set _scrollTop(top) {
|
| + if (this.scrollTarget === this._doc) {
|
| + window.scrollTo(window.pageXOffset, top);
|
| + } else if (this._isValidScrollTarget()) {
|
| + this.scrollTarget.scrollTop = top;
|
| + }
|
| + },
|
| + set _scrollLeft(left) {
|
| + if (this.scrollTarget === this._doc) {
|
| + window.scrollTo(left, window.pageYOffset);
|
| + } else if (this._isValidScrollTarget()) {
|
| + this.scrollTarget.scrollLeft = left;
|
| + }
|
| + },
|
| + scroll: function(left, top) {
|
| + if (this.scrollTarget === this._doc) {
|
| + window.scrollTo(left, top);
|
| + } else if (this._isValidScrollTarget()) {
|
| + this.scrollTarget.scrollLeft = left;
|
| + this.scrollTarget.scrollTop = top;
|
| + }
|
| + },
|
| + get _scrollTargetWidth() {
|
| + if (this._isValidScrollTarget()) {
|
| + return this.scrollTarget === this._doc ? window.innerWidth : this.scrollTarget.offsetWidth;
|
| + }
|
| + return 0;
|
| + },
|
| + get _scrollTargetHeight() {
|
| + if (this._isValidScrollTarget()) {
|
| + return this.scrollTarget === this._doc ? window.innerHeight : this.scrollTarget.offsetHeight;
|
| + }
|
| + return 0;
|
| + },
|
| + _isValidScrollTarget: function() {
|
| + return this.scrollTarget instanceof HTMLElement;
|
| + }
|
| +};
|
| +
|
| (function() {
|
| 'use strict';
|
| var KEY_IDENTIFIER = {
|
| @@ -7008,95 +7097,6 @@ Polymer({
|
| }
|
| });
|
|
|
| -Polymer.IronScrollTargetBehavior = {
|
| - properties: {
|
| - scrollTarget: {
|
| - type: HTMLElement,
|
| - value: function() {
|
| - return this._defaultScrollTarget;
|
| - }
|
| - }
|
| - },
|
| - observers: [ '_scrollTargetChanged(scrollTarget, isAttached)' ],
|
| - _scrollTargetChanged: function(scrollTarget, isAttached) {
|
| - var eventTarget;
|
| - if (this._oldScrollTarget) {
|
| - eventTarget = this._oldScrollTarget === this._doc ? window : this._oldScrollTarget;
|
| - eventTarget.removeEventListener('scroll', this._boundScrollHandler);
|
| - this._oldScrollTarget = null;
|
| - }
|
| - if (!isAttached) {
|
| - return;
|
| - }
|
| - if (scrollTarget === 'document') {
|
| - this.scrollTarget = this._doc;
|
| - } else if (typeof scrollTarget === 'string') {
|
| - this.scrollTarget = this.domHost ? this.domHost.$[scrollTarget] : Polymer.dom(this.ownerDocument).querySelector('#' + scrollTarget);
|
| - } else if (this._isValidScrollTarget()) {
|
| - eventTarget = scrollTarget === this._doc ? window : scrollTarget;
|
| - this._boundScrollHandler = this._boundScrollHandler || this._scrollHandler.bind(this);
|
| - this._oldScrollTarget = scrollTarget;
|
| - eventTarget.addEventListener('scroll', this._boundScrollHandler);
|
| - }
|
| - },
|
| - _scrollHandler: function scrollHandler() {},
|
| - get _defaultScrollTarget() {
|
| - return this._doc;
|
| - },
|
| - get _doc() {
|
| - return this.ownerDocument.documentElement;
|
| - },
|
| - get _scrollTop() {
|
| - if (this._isValidScrollTarget()) {
|
| - return this.scrollTarget === this._doc ? window.pageYOffset : this.scrollTarget.scrollTop;
|
| - }
|
| - return 0;
|
| - },
|
| - get _scrollLeft() {
|
| - if (this._isValidScrollTarget()) {
|
| - return this.scrollTarget === this._doc ? window.pageXOffset : this.scrollTarget.scrollLeft;
|
| - }
|
| - return 0;
|
| - },
|
| - set _scrollTop(top) {
|
| - if (this.scrollTarget === this._doc) {
|
| - window.scrollTo(window.pageXOffset, top);
|
| - } else if (this._isValidScrollTarget()) {
|
| - this.scrollTarget.scrollTop = top;
|
| - }
|
| - },
|
| - set _scrollLeft(left) {
|
| - if (this.scrollTarget === this._doc) {
|
| - window.scrollTo(left, window.pageYOffset);
|
| - } else if (this._isValidScrollTarget()) {
|
| - this.scrollTarget.scrollLeft = left;
|
| - }
|
| - },
|
| - scroll: function(left, top) {
|
| - if (this.scrollTarget === this._doc) {
|
| - window.scrollTo(left, top);
|
| - } else if (this._isValidScrollTarget()) {
|
| - this.scrollTarget.scrollLeft = left;
|
| - this.scrollTarget.scrollTop = top;
|
| - }
|
| - },
|
| - get _scrollTargetWidth() {
|
| - if (this._isValidScrollTarget()) {
|
| - return this.scrollTarget === this._doc ? window.innerWidth : this.scrollTarget.offsetWidth;
|
| - }
|
| - return 0;
|
| - },
|
| - get _scrollTargetHeight() {
|
| - if (this._isValidScrollTarget()) {
|
| - return this.scrollTarget === this._doc ? window.innerHeight : this.scrollTarget.offsetHeight;
|
| - }
|
| - return 0;
|
| - },
|
| - _isValidScrollTarget: function() {
|
| - return this.scrollTarget instanceof HTMLElement;
|
| - }
|
| -};
|
| -
|
| (function() {
|
| var IOS = navigator.userAgent.match(/iP(?:hone|ad;(?: U;)? CPU) OS (\d+)/);
|
| var IOS_TOUCH_SCROLLING = IOS && IOS[1] >= 8;
|
| @@ -8216,6 +8216,9 @@ Polymer({
|
| if (this.getSelectedItemCount() > 0) return;
|
| this.queryHistory(false);
|
| },
|
| + getContentScrollTarget: function() {
|
| + return this.getSelectedList_();
|
| + },
|
| getSelectedItemCount: function() {
|
| return this.getSelectedList_().selectedPaths.size;
|
| },
|
| @@ -8410,6 +8413,9 @@ Polymer({
|
| chrome.send('otherDevicesInitialized');
|
| md_history.BrowserService.getInstance().recordHistogram(SYNCED_TABS_HISTOGRAM_NAME, SyncedTabsHistogram.INITIALIZED, SyncedTabsHistogram.LIMIT);
|
| },
|
| + getContentScrollTarget: function() {
|
| + return this;
|
| + },
|
| createInternalDevice_: function(session) {
|
| var tabs = [];
|
| var separatorIndexes = [];
|
| @@ -8573,6 +8579,7 @@ Polymer({
|
| // found in the LICENSE file.
|
| Polymer({
|
| is: 'history-app',
|
| + behaviors: [ Polymer.IronScrollTargetBehavior ],
|
| properties: {
|
| showSidebarFooter: Boolean,
|
| selectedPage_: {
|
| @@ -8618,6 +8625,11 @@ Polymer({
|
| isUserSignedIn_: {
|
| type: Boolean,
|
| value: loadTimeData.getBoolean('isUserSignedIn')
|
| + },
|
| + toolbarShadow_: {
|
| + type: Boolean,
|
| + reflectToAttribute: true,
|
| + notify: true
|
| }
|
| },
|
| observers: [ 'routeDataChanged_(routeData_.page)', 'selectedPageChanged_(selectedPage_)', 'searchTermChanged_(queryState_.searchTerm)', 'searchQueryParamChanged_(queryParams_.q)' ],
|
| @@ -8628,7 +8640,7 @@ Polymer({
|
| 'delete-selected': 'deleteSelected',
|
| 'search-domain': 'searchDomain_',
|
| 'history-close-drawer': 'closeDrawer_',
|
| - 'history-view-changed': 'recordHistoryPageView_'
|
| + 'history-view-changed': 'historyViewChanged_'
|
| },
|
| ready: function() {
|
| this.grouped_ = loadTimeData.getBoolean('groupByDomain');
|
| @@ -8647,6 +8659,9 @@ Polymer({
|
| this.focusToolbarSearchField();
|
| }
|
| },
|
| + _scrollHandler: function() {
|
| + this.toolbarShadow_ = this.scrollTarget.scrollTop != 0;
|
| + },
|
| onMenuTap_: function() {
|
| var drawer = this.$$('#drawer');
|
| if (drawer) drawer.toggle();
|
| @@ -8730,6 +8745,13 @@ Polymer({
|
| },
|
| selectedPageChanged_: function(selectedPage) {
|
| this.set('routeData_.page', selectedPage);
|
| + this.historyViewChanged_();
|
| + },
|
| + historyViewChanged_: function() {
|
| + requestAnimationFrame(function() {
|
| + this.scrollTarget = this.$.content.selectedItem.getContentScrollTarget();
|
| + this._scrollHandler();
|
| + }.bind(this));
|
| this.recordHistoryPageView_();
|
| },
|
| getSelectedPage_: function(selectedPage, items) {
|
|
|