1/* 2 * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23 * THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include "config.h" 27#include "WebPageCreationParameters.h" 28 29#include "WebCoreArgumentCoders.h" 30 31namespace WebKit { 32 33void WebPageCreationParameters::encode(CoreIPC::ArgumentEncoder& encoder) const 34{ 35 encoder << viewSize; 36 encoder << isActive; 37 encoder << isFocused; 38 encoder << isVisible; 39 encoder << isInWindow; 40 41 encoder << store; 42 encoder.encodeEnum(drawingAreaType); 43 encoder << pageGroupData; 44 encoder << drawsBackground; 45 encoder << drawsTransparentBackground; 46 encoder << underlayColor; 47 encoder << areMemoryCacheClientCallsEnabled; 48 encoder << useFixedLayout; 49 encoder << fixedLayoutSize; 50 encoder.encodeEnum(paginationMode); 51 encoder << paginationBehavesLikeColumns; 52 encoder << pageLength; 53 encoder << gapBetweenPages; 54 encoder << userAgent; 55 encoder << sessionState; 56 encoder << highestUsedBackForwardItemID; 57 encoder << canRunBeforeUnloadConfirmPanel; 58 encoder << canRunModal; 59 encoder << deviceScaleFactor; 60 encoder << mediaVolume; 61 encoder << mayStartMediaWhenInWindow; 62 encoder << minimumLayoutSize; 63 encoder << autoSizingShouldExpandToViewHeight; 64 encoder.encodeEnum(scrollPinningBehavior); 65 66#if PLATFORM(MAC) 67 encoder.encodeEnum(layerHostingMode); 68 encoder << colorSpace; 69#endif 70} 71 72bool WebPageCreationParameters::decode(CoreIPC::ArgumentDecoder& decoder, WebPageCreationParameters& parameters) 73{ 74 if (!decoder.decode(parameters.viewSize)) 75 return false; 76 if (!decoder.decode(parameters.isActive)) 77 return false; 78 if (!decoder.decode(parameters.isFocused)) 79 return false; 80 if (!decoder.decode(parameters.isVisible)) 81 return false; 82 if (!decoder.decode(parameters.isInWindow)) 83 return false; 84 if (!decoder.decode(parameters.store)) 85 return false; 86 if (!decoder.decodeEnum(parameters.drawingAreaType)) 87 return false; 88 if (!decoder.decode(parameters.pageGroupData)) 89 return false; 90 if (!decoder.decode(parameters.drawsBackground)) 91 return false; 92 if (!decoder.decode(parameters.drawsTransparentBackground)) 93 return false; 94 if (!decoder.decode(parameters.underlayColor)) 95 return false; 96 if (!decoder.decode(parameters.areMemoryCacheClientCallsEnabled)) 97 return false; 98 if (!decoder.decode(parameters.useFixedLayout)) 99 return false; 100 if (!decoder.decode(parameters.fixedLayoutSize)) 101 return false; 102 if (!decoder.decodeEnum(parameters.paginationMode)) 103 return false; 104 if (!decoder.decode(parameters.paginationBehavesLikeColumns)) 105 return false; 106 if (!decoder.decode(parameters.pageLength)) 107 return false; 108 if (!decoder.decode(parameters.gapBetweenPages)) 109 return false; 110 if (!decoder.decode(parameters.userAgent)) 111 return false; 112 if (!decoder.decode(parameters.sessionState)) 113 return false; 114 if (!decoder.decode(parameters.highestUsedBackForwardItemID)) 115 return false; 116 if (!decoder.decode(parameters.canRunBeforeUnloadConfirmPanel)) 117 return false; 118 if (!decoder.decode(parameters.canRunModal)) 119 return false; 120 if (!decoder.decode(parameters.deviceScaleFactor)) 121 return false; 122 if (!decoder.decode(parameters.mediaVolume)) 123 return false; 124 if (!decoder.decode(parameters.mayStartMediaWhenInWindow)) 125 return false; 126 if (!decoder.decode(parameters.minimumLayoutSize)) 127 return false; 128 if (!decoder.decode(parameters.autoSizingShouldExpandToViewHeight)) 129 return false; 130 if (!decoder.decodeEnum(parameters.scrollPinningBehavior)) 131 return false; 132 133#if PLATFORM(MAC) 134 if (!decoder.decodeEnum(parameters.layerHostingMode)) 135 return false; 136 if (!decoder.decode(parameters.colorSpace)) 137 return false; 138#endif 139 140 return true; 141} 142 143} // namespace WebKit 144