+
+ [self _clearBackground];
+
+ if (DOMDocument *document = [frame DOMDocument])
+ if (DOMNodeList<NSFastEnumeration> *bodies = [document getElementsByTagName:@"body"])
+ for (DOMHTMLBodyElement *body in bodies) {
+ DOMCSSStyleDeclaration *style([document getComputedStyle:body pseudoElement:nil]);
+
+ bool colored(false);
+
+ if (DOMCSSPrimitiveValue *color = static_cast<DOMCSSPrimitiveValue *>([style getPropertyCSSValue:@"background-color"])) {
+ DOMRGBColor *rgb([color getRGBColorValue]);
+
+ float alpha([[rgb alpha] getFloatValue:DOM_CSS_NUMBER]);
+ if (alpha != 0) {
+ colored = true;
+
+ [background_ setBackgroundColor:[UIColor
+ colorWithRed:([[rgb red] getFloatValue:DOM_CSS_NUMBER] / 255)
+ green:([[rgb green] getFloatValue:DOM_CSS_NUMBER] / 255)
+ blue:([[rgb blue] getFloatValue:DOM_CSS_NUMBER] / 255)
+ alpha:alpha
+ ]];
+ }
+ }
+
+ if (DOMCSSPrimitiveValue *image = static_cast<DOMCSSPrimitiveValue *>([style getPropertyCSSValue:@"background-image"])) {
+ NSString *src([image getStringValue]);
+ if ([src isEqualToString:@"none"])
+ goto none;
+ NSLog(@"img:%@", [image getStringValue]);
+ } else none: if (colored)
+ [background_ setImage:nil];
+
+ break;
+ }
+ }
+