168513a70bcd92384395513322f1b801e7bf9c729Steve Block/* 2635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) 3635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 4635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * This library is free software; you can redistribute it and/or 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modify it under the terms of the GNU Library General Public 6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * License as published by the Free Software Foundation; either 7635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * version 2 of the License, or (at your option) any later version. 8635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * This library is distributed in the hope that it will be useful, 10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Library General Public License for more details. 13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 14635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * You should have received a copy of the GNU Library General Public License 15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Boston, MA 02110-1301, USA. 18635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */ 20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "config.h" 22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#if ENABLE(WML) 24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WMLImageLoader.h" 25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "CachedImage.h" 27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "HTMLNames.h" 28a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "HTMLParserIdioms.h" 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WMLImageElement.h" 30635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WMLNames.h" 31635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 32635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectnamespace WebCore { 33635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 34635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectusing namespace WMLNames; 35635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 36635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectWMLImageLoader::WMLImageLoader(WMLImageElement* element) 37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project : ImageLoader(element) 38635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 40635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 41635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectWMLImageLoader::~WMLImageLoader() 42635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 43635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 44635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 45635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid WMLImageLoader::dispatchLoadEvent() 46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 47635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // WML doesn't fire any events. 48635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 49635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 50635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectString WMLImageLoader::sourceURI(const AtomicString& attr) const 51635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 52a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return KURL(element()->baseURI(), stripLeadingAndTrailingHTMLSpaces(attr)); 53635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 54635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 55635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid WMLImageLoader::notifyFinished(CachedResource* image) 56635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 57635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project ImageLoader::notifyFinished(image); 58635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 59635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (!image->errorOccurred()) 60635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return; 61635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 62635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project WMLImageElement* imageElement = static_cast<WMLImageElement*>(element()); 63635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project ASSERT(imageElement); 64635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 65635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // Loading both 'localsrc' and 'src' failed. Ignore this image. 66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (imageElement->useFallbackAttribute()) 67635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return; 68635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 69635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (!imageElement->hasAttribute(localsrcAttr) && !imageElement->hasAttribute(HTMLNames::srcAttr)) 70635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return; 71635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 72635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project imageElement->setUseFallbackAttribute(true); 73635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project updateFromElementIgnoringPreviousError(); 74635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 75635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 76635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 77635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 78635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 79