Home | History | Annotate | Download | only in css
      1 /*
      2  * Copyright (C) 1999-2003 Lars Knoll (knoll (at) kde.org)
      3  *               1999 Waldo Bastian (bastian (at) kde.org)
      4  *               2001 Andreas Schlapbach (schlpbch (at) iam.unibe.ch)
      5  *               2001-2003 Dirk Mueller (mueller (at) kde.org)
      6  * Copyright (C) 2002, 2006, 2008 Apple Inc. All rights reserved.
      7  *
      8  * This library is free software; you can redistribute it and/or
      9  * modify it under the terms of the GNU Library General Public
     10  * License as published by the Free Software Foundation; either
     11  * version 2 of the License, or (at your option) any later version.
     12  *
     13  * This library is distributed in the hope that it will be useful,
     14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     16  * Library General Public License for more details.
     17  *
     18  * You should have received a copy of the GNU Library General Public License
     19  * along with this library; see the file COPYING.LIB.  If not, write to
     20  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     21  * Boston, MA 02110-1301, USA.
     22  */
     23 #include "config.h"
     24 #include "StyleBase.h"
     25 
     26 #include "Document.h"
     27 #include "Node.h"
     28 #include "StyleSheet.h"
     29 
     30 namespace WebCore {
     31 
     32 String StyleBase::cssText() const
     33 {
     34     return "";
     35 }
     36 
     37 void StyleBase::checkLoaded()
     38 {
     39     if (parent())
     40         parent()->checkLoaded();
     41 }
     42 
     43 StyleSheet* StyleBase::stylesheet()
     44 {
     45     StyleBase *b = this;
     46     while (b && !b->isStyleSheet())
     47         b = b->parent();
     48     return static_cast<StyleSheet*>(b);
     49 }
     50 
     51 KURL StyleBase::baseURL() const
     52 {
     53     // Try to find the style sheet. If found look for its URL.
     54     // If it has none, get the URL from the parent sheet or the parent node.
     55 
     56     StyleSheet* sheet = const_cast<StyleBase*>(this)->stylesheet();
     57     if (!sheet)
     58         return KURL();
     59     if (!sheet->finalURL().isNull())
     60         return sheet->finalURL();
     61     if (sheet->parent())
     62         return sheet->parent()->baseURL();
     63     if (!sheet->ownerNode())
     64         return KURL();
     65     return sheet->ownerNode()->document()->baseURL();
     66 }
     67 
     68 #ifdef ANDROID_INSTRUMENT
     69 static size_t styleSize = 0;
     70 
     71 void* StyleBase::operator new(size_t size)
     72 {
     73     styleSize += size;
     74     return ::operator new(size);
     75 }
     76 
     77 void* StyleBase::operator new[](size_t size)
     78 {
     79     styleSize += size;
     80     return ::operator new[](size);
     81 }
     82 
     83 void StyleBase::operator delete(void* p, size_t size)
     84 {
     85     styleSize -= size;
     86     ::operator delete(p);
     87 }
     88 
     89 void StyleBase::operator delete[](void* p, size_t size)
     90 {
     91     styleSize -= size;
     92     ::operator delete[](p);
     93 }
     94 
     95 size_t StyleBase::reportStyleSize()
     96 {
     97     return styleSize;
     98 }
     99 #endif
    100 
    101 }
    102