1 /* 2 * Copyright (c) 2002-2025 Gargoyle Software Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * https://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 package org.htmlunit.html; 16 17 import java.net.URL; 18 import java.util.Map; 19 20 import org.htmlunit.SgmlPage; 21 import org.htmlunit.WebClient; 22 23 /** 24 * Wrapper for the HTML element "meta". 25 * 26 * @author <a href="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a> 27 * @author <a href="mailto:cse@dynabean.de">Christian Sell</a> 28 * @author Ahmed Ashour 29 * @author Frank Danek 30 * @author Ronald Brill 31 */ 32 public class HtmlMeta extends HtmlElement { 33 34 /** The HTML tag represented by this element. */ 35 public static final String TAG_NAME = "meta"; 36 37 /** 38 * Creates an instance of HtmlMeta 39 * 40 * @param qualifiedName the qualified name of the element type to instantiate 41 * @param page the HtmlPage that contains this element 42 * @param attributes the initial attributes 43 */ 44 HtmlMeta(final String qualifiedName, final SgmlPage page, 45 final Map<String, DomAttr> attributes) { 46 super(qualifiedName, page, attributes); 47 48 // Handles the cookies specified in meta tags, 49 // like <code><meta http-equiv='set-cookie' content='webm=none; path=/;'></code>. 50 if ("set-cookie".equalsIgnoreCase(getHttpEquivAttribute())) { 51 final WebClient client = page.getWebClient(); 52 final URL url = page.getUrl(); 53 client.addCookie(getContentAttribute(), url, this); 54 } 55 } 56 57 /** 58 * {@inheritDoc} 59 */ 60 @Override 61 public boolean mayBeDisplayed() { 62 return false; 63 } 64 65 /** 66 * Returns the value of the attribute {@code http-equiv}. Refer to the 67 * <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> 68 * documentation for details on the use of this attribute. 69 * 70 * @return the value of the attribute {@code http-equiv} 71 * or an empty string if that attribute isn't defined. 72 */ 73 public final String getHttpEquivAttribute() { 74 return getAttribute("http-equiv"); 75 } 76 77 /** 78 * Returns the value of the attribute {@code name}. Refer to the 79 * <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> 80 * documentation for details on the use of this attribute. 81 * 82 * @return the value of the attribute {@code name} 83 * or an empty string if that attribute isn't defined. 84 */ 85 public final String getNameAttribute() { 86 return getAttributeDirect(NAME_ATTRIBUTE); 87 } 88 89 /** 90 * Returns the value of the attribute {@code content}. Refer to the 91 * <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> 92 * documentation for details on the use of this attribute. 93 * 94 * @return the value of the attribute {@code content} 95 * or an empty string if that attribute isn't defined. 96 */ 97 public final String getContentAttribute() { 98 return getAttributeDirect("content"); 99 } 100 101 /** 102 * Returns the value of the attribute {@code scheme}. Refer to the 103 * <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> 104 * documentation for details on the use of this attribute. 105 * 106 * @return the value of the attribute {@code scheme} 107 * or an empty string if that attribute isn't defined. 108 */ 109 public final String getSchemeAttribute() { 110 return getAttributeDirect("scheme"); 111 } 112 113 /** 114 * {@inheritDoc} 115 */ 116 @Override 117 public DisplayStyle getDefaultStyleDisplay() { 118 return DisplayStyle.NONE; 119 } 120 }