diff options
author | Leif Åstrand <leif@vaadin.com> | 2015-07-07 21:21:58 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-07-11 13:26:31 +0000 |
commit | 16a00beddef02cdc37bbeb41f34a3e3d2edf17bc (patch) | |
tree | 5e79bb09a65fcbab37d2181e93a98793aa45b0cf | |
parent | 84daff0e39ca19d73255b60b0737742c3706dbfa (diff) | |
download | vaadin-framework-16a00beddef02cdc37bbeb41f34a3e3d2edf17bc.tar.gz vaadin-framework-16a00beddef02cdc37bbeb41f34a3e3d2edf17bc.zip |
Log exception from responsive with cross site css in FF (#16249)
Change-Id: I6072429d3a87afd25a6dd6604749ace728ab6d7d
3 files changed, 86 insertions, 4 deletions
diff --git a/client/src/com/vaadin/client/extensions/ResponsiveConnector.java b/client/src/com/vaadin/client/extensions/ResponsiveConnector.java index 2e1e75f6cd..621c69788c 100644 --- a/client/src/com/vaadin/client/extensions/ResponsiveConnector.java +++ b/client/src/com/vaadin/client/extensions/ResponsiveConnector.java @@ -84,6 +84,10 @@ public class ResponsiveConnector extends AbstractExtensionConnector implements getLogger().log(Level.SEVERE, message); } + private static void warning(String message) { + getLogger().warning(message); + } + @Override protected void extend(ServerConnector target) { this.target = (AbstractComponentConnector) target; @@ -204,10 +208,17 @@ public class ResponsiveConnector extends AbstractExtensionConnector implements var IE = @com.vaadin.client.BrowserInfo::get()().@com.vaadin.client.BrowserInfo::isIE()(); var IE8 = @com.vaadin.client.BrowserInfo::get()().@com.vaadin.client.BrowserInfo::isIE8()(); - if (sheet.cssRules) { - theRules = sheet.cssRules - } else if (sheet.rules) { - theRules = sheet.rules + try { + if (sheet.cssRules) { + theRules = sheet.cssRules + } else if (sheet.rules) { + theRules = sheet.rules + } + } catch (e) { + // FF spews if trying to access rules for cross domain styles + @ResponsiveConnector::warning(*)("Can't process styles from " + sheet.href + + ", probably because of cross domain issues: " + e); + return; } // Special import handling for IE8 diff --git a/uitest/src/com/vaadin/tests/extensions/ResponsiveWithCrossDomainStyles.java b/uitest/src/com/vaadin/tests/extensions/ResponsiveWithCrossDomainStyles.java new file mode 100644 index 0000000000..9f9453d505 --- /dev/null +++ b/uitest/src/com/vaadin/tests/extensions/ResponsiveWithCrossDomainStyles.java @@ -0,0 +1,37 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.extensions; + +import com.vaadin.annotations.StyleSheet; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; + +@StyleSheet("http://fonts.googleapis.com/css?family=Cabin+Sketch") +public class ResponsiveWithCrossDomainStyles extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + addComponent(new Button("Make responsive", new Button.ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + event.getButton().setResponsive(true); + } + })); + } + +} diff --git a/uitest/src/com/vaadin/tests/extensions/ResponsiveWithCrossDomainStylesTest.java b/uitest/src/com/vaadin/tests/extensions/ResponsiveWithCrossDomainStylesTest.java new file mode 100644 index 0000000000..4089618635 --- /dev/null +++ b/uitest/src/com/vaadin/tests/extensions/ResponsiveWithCrossDomainStylesTest.java @@ -0,0 +1,34 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.extensions; + +import org.junit.Test; + +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class ResponsiveWithCrossDomainStylesTest extends MultiBrowserTest { + @Test + public void testResponsive() { + setDebug(true); + openTestURL(); + + $(ButtonElement.class).first().click(); + + assertNoErrorNotifications(); + } + +} |