| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2003, 2010 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2010 Apple Inc. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| 11 * | 11 * |
| 12 * This library is distributed in the hope that it will be useful, | 12 * This library is distributed in the hope that it will be useful, |
| 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 15 * Library General Public License for more details. | 15 * Library General Public License for more details. |
| 16 * | 16 * |
| 17 * You should have received a copy of the GNU Library General Public License | 17 * You should have received a copy of the GNU Library General Public License |
| 18 * along with this library; see the file COPYING.LIB. If not, write to | 18 * along with this library; see the file COPYING.LIB. If not, write to |
| 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 20 * Boston, MA 02110-1301, USA. | 20 * Boston, MA 02110-1301, USA. |
| 21 */ | 21 */ |
| 22 | 22 |
| 23 #include "config.h" | 23 #include "config.h" |
| 24 #include "core/html/HTMLMetaElement.h" | 24 #include "core/html/HTMLMetaElement.h" |
| 25 | 25 |
| 26 #include "HTMLNames.h" | 26 #include "HTMLNames.h" |
| 27 #include "RuntimeEnabledFeatures.h" |
| 27 #include "core/dom/Document.h" | 28 #include "core/dom/Document.h" |
| 29 #include "core/frame/LocalFrame.h" |
| 28 #include "core/frame/Settings.h" | 30 #include "core/frame/Settings.h" |
| 31 #include "core/loader/FrameLoaderClient.h" |
| 29 | 32 |
| 30 namespace WebCore { | 33 namespace WebCore { |
| 31 | 34 |
| 32 #define DEFINE_ARRAY_FOR_MATCHING(name, source, maxMatchLength) \ | 35 #define DEFINE_ARRAY_FOR_MATCHING(name, source, maxMatchLength) \ |
| 33 const UChar* name; \ | 36 const UChar* name; \ |
| 34 const unsigned uMaxMatchLength = maxMatchLength; \ | 37 const unsigned uMaxMatchLength = maxMatchLength; \ |
| 35 UChar characterBuffer[uMaxMatchLength]; \ | 38 UChar characterBuffer[uMaxMatchLength]; \ |
| 36 if (!source.is8Bit()) { \ | 39 if (!source.is8Bit()) { \ |
| 37 name = source.characters16(); \ | 40 name = source.characters16(); \ |
| 38 } else { \ | 41 } else { \ |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 const AtomicString& nameValue = fastGetAttribute(nameAttr); | 464 const AtomicString& nameValue = fastGetAttribute(nameAttr); |
| 462 if (!nameValue.isEmpty()) { | 465 if (!nameValue.isEmpty()) { |
| 463 if (equalIgnoringCase(nameValue, "viewport")) | 466 if (equalIgnoringCase(nameValue, "viewport")) |
| 464 processViewportContentAttribute(contentValue, ViewportDescription::V
iewportMeta); | 467 processViewportContentAttribute(contentValue, ViewportDescription::V
iewportMeta); |
| 465 else if (equalIgnoringCase(nameValue, "referrer")) | 468 else if (equalIgnoringCase(nameValue, "referrer")) |
| 466 document().processReferrerPolicy(contentValue); | 469 document().processReferrerPolicy(contentValue); |
| 467 else if (equalIgnoringCase(nameValue, "handheldfriendly") && equalIgnori
ngCase(contentValue, "true")) | 470 else if (equalIgnoringCase(nameValue, "handheldfriendly") && equalIgnori
ngCase(contentValue, "true")) |
| 468 processViewportContentAttribute("width=device-width", ViewportDescri
ption::HandheldFriendlyMeta); | 471 processViewportContentAttribute("width=device-width", ViewportDescri
ption::HandheldFriendlyMeta); |
| 469 else if (equalIgnoringCase(nameValue, "mobileoptimized")) | 472 else if (equalIgnoringCase(nameValue, "mobileoptimized")) |
| 470 processViewportContentAttribute("width=device-width, initial-scale=1
", ViewportDescription::MobileOptimizedMeta); | 473 processViewportContentAttribute("width=device-width, initial-scale=1
", ViewportDescription::MobileOptimizedMeta); |
| 474 else if (RuntimeEnabledFeatures::brandColorEnabled() && equalIgnoringCas
e(nameValue, "brand-color") && document().frame()) |
| 475 document().frame()->loader().client()->dispatchDidChangeBrandColor()
; |
| 471 } | 476 } |
| 472 | 477 |
| 473 // Get the document to process the tag, but only if we're actually part of D
OM | 478 // Get the document to process the tag, but only if we're actually part of D
OM |
| 474 // tree (changing a meta tag while it's not in the tree shouldn't have any e
ffect | 479 // tree (changing a meta tag while it's not in the tree shouldn't have any e
ffect |
| 475 // on the document). | 480 // on the document). |
| 476 | 481 |
| 477 const AtomicString& httpEquivValue = fastGetAttribute(http_equivAttr); | 482 const AtomicString& httpEquivValue = fastGetAttribute(http_equivAttr); |
| 478 if (!httpEquivValue.isEmpty()) | 483 if (!httpEquivValue.isEmpty()) |
| 479 document().processHttpEquiv(httpEquivValue, contentValue, inDocumentHead
(this)); | 484 document().processHttpEquiv(httpEquivValue, contentValue, inDocumentHead
(this)); |
| 480 } | 485 } |
| 481 | 486 |
| 482 const AtomicString& HTMLMetaElement::content() const | 487 const AtomicString& HTMLMetaElement::content() const |
| 483 { | 488 { |
| 484 return getAttribute(contentAttr); | 489 return getAttribute(contentAttr); |
| 485 } | 490 } |
| 486 | 491 |
| 487 const AtomicString& HTMLMetaElement::httpEquiv() const | 492 const AtomicString& HTMLMetaElement::httpEquiv() const |
| 488 { | 493 { |
| 489 return getAttribute(http_equivAttr); | 494 return getAttribute(http_equivAttr); |
| 490 } | 495 } |
| 491 | 496 |
| 492 const AtomicString& HTMLMetaElement::name() const | 497 const AtomicString& HTMLMetaElement::name() const |
| 493 { | 498 { |
| 494 return getNameAttribute(); | 499 return getNameAttribute(); |
| 495 } | 500 } |
| 496 | 501 |
| 497 } | 502 } |
| OLD | NEW |