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 |