1 /*
2  * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
3  * Copyright (C) 2011 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #include "config.h"
27 #include "FrameLoaderClientWinCE.h"
28 
29 #include "DocumentLoader.h"
30 #include "FrameLoader.h"
31 #include "FrameNetworkingContextWinCE.h"
32 #include "FrameView.h"
33 #include "HTMLFormElement.h"
34 #include "MIMETypeRegistry.h"
35 #include "NotImplemented.h"
36 #include "Page.h"
37 #include "PluginDatabase.h"
38 #include "RenderPart.h"
39 #include "SystemInfo.h"
40 #include "WebKitVersion.h"
41 #include "WebView.h"
42 #include <wtf/text/StringConcatenate.h>
43 
44 using namespace WebCore;
45 
46 namespace WebKit {
47 
FrameLoaderClientWinCE(WebView * view)48 FrameLoaderClientWinCE::FrameLoaderClientWinCE(WebView* view)
49     : m_webView(view)
50     , m_pluginView(0)
51 {
52     ASSERT(m_webView);
53 }
54 
~FrameLoaderClientWinCE()55 FrameLoaderClientWinCE::~FrameLoaderClientWinCE()
56 {
57 }
58 
userAgent(const KURL &)59 String FrameLoaderClientWinCE::userAgent(const KURL&)
60 {
61     DEFINE_STATIC_LOCAL(String, userAgentString, ());
62 
63     if (userAgentString.isNull()) {
64         String webKitVersion = String::format("%d.%d", WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION);
65         userAgentString = makeString("Mozilla/5.0 (", windowsVersionForUAString(), ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko) Mobile Safari/", webKitVersion);
66     }
67 
68     return userAgentString;
69 }
70 
createDocumentLoader(const WebCore::ResourceRequest & request,const SubstituteData & substituteData)71 PassRefPtr<DocumentLoader> FrameLoaderClientWinCE::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData)
72 {
73     return DocumentLoader::create(request, substituteData);
74 }
75 
committedLoad(DocumentLoader * loader,const char * data,int length)76 void FrameLoaderClientWinCE::committedLoad(DocumentLoader* loader, const char* data, int length)
77 {
78     if (m_pluginView) {
79         if (!m_hasSentResponseToPlugin) {
80             m_pluginView->didReceiveResponse(loader->response());
81             m_hasSentResponseToPlugin = true;
82         }
83         m_pluginView->didReceiveData(data, length);
84     } else
85         loader->commitData(data, length);
86 }
87 
shouldUseCredentialStorage(DocumentLoader *,unsigned long)88 bool FrameLoaderClientWinCE::shouldUseCredentialStorage(DocumentLoader*, unsigned long)
89 {
90     notImplemented();
91     return false;
92 }
93 
dispatchDidReceiveAuthenticationChallenge(DocumentLoader *,unsigned long,const AuthenticationChallenge &)94 void FrameLoaderClientWinCE::dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&)
95 {
96     notImplemented();
97 }
98 
dispatchDidCancelAuthenticationChallenge(DocumentLoader *,unsigned long,const AuthenticationChallenge &)99 void FrameLoaderClientWinCE::dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&)
100 {
101     notImplemented();
102 }
103 
dispatchWillSendRequest(DocumentLoader *,unsigned long,WebCore::ResourceRequest &,const WebCore::ResourceResponse &)104 void FrameLoaderClientWinCE::dispatchWillSendRequest(DocumentLoader*, unsigned long, WebCore::ResourceRequest&, const WebCore::ResourceResponse&)
105 {
106     notImplemented();
107 }
108 
assignIdentifierToInitialRequest(unsigned long,DocumentLoader *,const WebCore::ResourceRequest &)109 void FrameLoaderClientWinCE::assignIdentifierToInitialRequest(unsigned long, DocumentLoader*, const WebCore::ResourceRequest&)
110 {
111     notImplemented();
112 }
113 
postProgressStartedNotification()114 void FrameLoaderClientWinCE::postProgressStartedNotification()
115 {
116     notImplemented();
117 }
118 
postProgressEstimateChangedNotification()119 void FrameLoaderClientWinCE::postProgressEstimateChangedNotification()
120 {
121     notImplemented();
122 }
123 
postProgressFinishedNotification()124 void FrameLoaderClientWinCE::postProgressFinishedNotification()
125 {
126     notImplemented();
127 }
128 
frameLoaderDestroyed()129 void FrameLoaderClientWinCE::frameLoaderDestroyed()
130 {
131     m_webView = 0;
132     m_frame = 0;
133     delete this;
134 }
135 
dispatchDidReceiveResponse(DocumentLoader *,unsigned long,const ResourceResponse & response)136 void FrameLoaderClientWinCE::dispatchDidReceiveResponse(DocumentLoader*, unsigned long, const ResourceResponse& response)
137 {
138     m_response = response;
139 }
140 
dispatchDecidePolicyForResponse(FramePolicyFunction policyFunction,const WebCore::ResourceResponse & response,const WebCore::ResourceRequest &)141 void FrameLoaderClientWinCE::dispatchDecidePolicyForResponse(FramePolicyFunction policyFunction, const WebCore::ResourceResponse& response, const WebCore::ResourceRequest&)
142 {
143     if (canShowMIMEType(response.mimeType()))
144         (m_frame->loader()->policyChecker()->*policyFunction)(PolicyUse);
145     else
146         (m_frame->loader()->policyChecker()->*policyFunction)(PolicyDownload);
147 }
148 
dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction,const NavigationAction &,const WebCore::ResourceRequest &,PassRefPtr<FormState>,const String &)149 void FrameLoaderClientWinCE::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction, const NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<FormState>, const String&)
150 {
151     (m_frame->loader()->policyChecker()->*policyFunction)(PolicyUse);
152 }
153 
dispatchDecidePolicyForNavigationAction(FramePolicyFunction policyFunction,const NavigationAction &,const WebCore::ResourceRequest &,PassRefPtr<FormState>)154 void FrameLoaderClientWinCE::dispatchDecidePolicyForNavigationAction(FramePolicyFunction policyFunction, const NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<FormState>)
155 {
156     (m_frame->loader()->policyChecker()->*policyFunction)(PolicyUse);
157 }
158 
dispatchWillSubmitForm(FramePolicyFunction policyFunction,PassRefPtr<FormState>)159 void FrameLoaderClientWinCE::dispatchWillSubmitForm(FramePolicyFunction policyFunction, PassRefPtr<FormState>)
160 {
161     (m_frame->loader()->policyChecker()->*policyFunction)(PolicyUse);
162 }
163 
createPlugin(const IntSize &,HTMLPlugInElement *,const KURL &,const Vector<String> &,const Vector<String> &,const String &,bool)164 PassRefPtr<Widget> FrameLoaderClientWinCE::createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool)
165 {
166     return 0;
167 }
168 
createFrame(const KURL & url,const String & name,HTMLFrameOwnerElement * ownerElement,const String & referrer,bool allowsScrolling,int marginWidth,int marginHeight)169 PassRefPtr<Frame> FrameLoaderClientWinCE::createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
170                                                  const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight)
171 {
172     return m_webView->createFrame(url, name, ownerElement, referrer, allowsScrolling, marginWidth, marginHeight);
173 }
174 
didTransferChildFrameToNewDocument(Page *)175 void FrameLoaderClientWinCE::didTransferChildFrameToNewDocument(Page*)
176 {
177 }
178 
transferLoadingResourceFromPage(unsigned long,DocumentLoader *,const WebCore::ResourceRequest &,Page *)179 void FrameLoaderClientWinCE::transferLoadingResourceFromPage(unsigned long, DocumentLoader*, const WebCore::ResourceRequest&, Page*)
180 {
181 }
182 
redirectDataToPlugin(Widget * pluginWidget)183 void FrameLoaderClientWinCE::redirectDataToPlugin(Widget* pluginWidget)
184 {
185     ASSERT(!m_pluginView);
186     m_pluginView = static_cast<PluginView*>(pluginWidget);
187     m_hasSentResponseToPlugin = false;
188 }
189 
createJavaAppletWidget(const IntSize &,HTMLAppletElement *,const KURL &,const Vector<String> &,const Vector<String> &)190 PassRefPtr<Widget> FrameLoaderClientWinCE::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&)
191 {
192     notImplemented();
193     return 0;
194 }
195 
objectContentType(const KURL & url,const String & mimeType,bool shouldPreferPlugInsForImages)196 ObjectContentType FrameLoaderClientWinCE::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
197 {
198     return FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages);
199 }
200 
overrideMediaType() const201 String FrameLoaderClientWinCE::overrideMediaType() const
202 {
203     notImplemented();
204     return String();
205 }
206 
dispatchDidClearWindowObjectInWorld(DOMWrapperWorld *)207 void FrameLoaderClientWinCE::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*)
208 {
209     notImplemented();
210 }
211 
documentElementAvailable()212 void FrameLoaderClientWinCE::documentElementAvailable()
213 {
214     notImplemented();
215 }
216 
didPerformFirstNavigation() const217 void FrameLoaderClientWinCE::didPerformFirstNavigation() const
218 {
219     notImplemented();
220 }
221 
registerForIconNotification(bool)222 void FrameLoaderClientWinCE::registerForIconNotification(bool)
223 {
224     notImplemented();
225 }
226 
setMainFrameDocumentReady(bool)227 void FrameLoaderClientWinCE::setMainFrameDocumentReady(bool)
228 {
229     notImplemented();
230 }
231 
hasWebView() const232 bool FrameLoaderClientWinCE::hasWebView() const
233 {
234     return true;
235 }
236 
dispatchDidFinishLoad()237 void FrameLoaderClientWinCE::dispatchDidFinishLoad()
238 {
239     notImplemented();
240 }
241 
frameLoadCompleted()242 void FrameLoaderClientWinCE::frameLoadCompleted()
243 {
244     notImplemented();
245 }
246 
saveViewStateToItem(HistoryItem *)247 void FrameLoaderClientWinCE::saveViewStateToItem(HistoryItem*)
248 {
249     notImplemented();
250 }
251 
restoreViewState()252 void FrameLoaderClientWinCE::restoreViewState()
253 {
254     notImplemented();
255 }
256 
shouldGoToHistoryItem(HistoryItem * item) const257 bool FrameLoaderClientWinCE::shouldGoToHistoryItem(HistoryItem* item) const
258 {
259     return item;
260 }
261 
shouldStopLoadingForHistoryItem(HistoryItem * item) const262 bool FrameLoaderClientWinCE::shouldStopLoadingForHistoryItem(HistoryItem* item) const
263 {
264     return true;
265 }
266 
dispatchDidAddBackForwardItem(HistoryItem *) const267 void FrameLoaderClientWinCE::dispatchDidAddBackForwardItem(HistoryItem*) const
268 {
269 }
270 
dispatchDidRemoveBackForwardItem(HistoryItem *) const271 void FrameLoaderClientWinCE::dispatchDidRemoveBackForwardItem(HistoryItem*) const
272 {
273 }
274 
dispatchDidChangeBackForwardIndex() const275 void FrameLoaderClientWinCE::dispatchDidChangeBackForwardIndex() const
276 {
277 }
278 
didDisplayInsecureContent()279 void FrameLoaderClientWinCE::didDisplayInsecureContent()
280 {
281     notImplemented();
282 }
283 
didRunInsecureContent(SecurityOrigin *,const KURL &)284 void FrameLoaderClientWinCE::didRunInsecureContent(SecurityOrigin*, const KURL&)
285 {
286     notImplemented();
287 }
288 
makeRepresentation(DocumentLoader *)289 void FrameLoaderClientWinCE::makeRepresentation(DocumentLoader*)
290 {
291     notImplemented();
292 }
293 
forceLayout()294 void FrameLoaderClientWinCE::forceLayout()
295 {
296     notImplemented();
297 }
298 
forceLayoutForNonHTML()299 void FrameLoaderClientWinCE::forceLayoutForNonHTML()
300 {
301     notImplemented();
302 }
303 
setCopiesOnScroll()304 void FrameLoaderClientWinCE::setCopiesOnScroll()
305 {
306     notImplemented();
307 }
308 
detachedFromParent2()309 void FrameLoaderClientWinCE::detachedFromParent2()
310 {
311     notImplemented();
312 }
313 
detachedFromParent3()314 void FrameLoaderClientWinCE::detachedFromParent3()
315 {
316     notImplemented();
317 }
318 
dispatchDidHandleOnloadEvents()319 void FrameLoaderClientWinCE::dispatchDidHandleOnloadEvents()
320 {
321     notImplemented();
322 }
323 
dispatchDidReceiveServerRedirectForProvisionalLoad()324 void FrameLoaderClientWinCE::dispatchDidReceiveServerRedirectForProvisionalLoad()
325 {
326     notImplemented();
327 }
328 
dispatchDidCancelClientRedirect()329 void FrameLoaderClientWinCE::dispatchDidCancelClientRedirect()
330 {
331     notImplemented();
332 }
333 
dispatchWillPerformClientRedirect(const KURL &,double,double)334 void FrameLoaderClientWinCE::dispatchWillPerformClientRedirect(const KURL&, double, double)
335 {
336     notImplemented();
337 }
338 
dispatchDidChangeLocationWithinPage()339 void FrameLoaderClientWinCE::dispatchDidChangeLocationWithinPage()
340 {
341     notImplemented();
342 }
343 
dispatchDidPushStateWithinPage()344 void FrameLoaderClientWinCE::dispatchDidPushStateWithinPage()
345 {
346     notImplemented();
347 }
348 
dispatchDidReplaceStateWithinPage()349 void FrameLoaderClientWinCE::dispatchDidReplaceStateWithinPage()
350 {
351     notImplemented();
352 }
353 
dispatchDidPopStateWithinPage()354 void FrameLoaderClientWinCE::dispatchDidPopStateWithinPage()
355 {
356     notImplemented();
357 }
358 
dispatchWillClose()359 void FrameLoaderClientWinCE::dispatchWillClose()
360 {
361     notImplemented();
362 }
363 
dispatchDidReceiveIcon()364 void FrameLoaderClientWinCE::dispatchDidReceiveIcon()
365 {
366     notImplemented();
367 }
368 
dispatchDidStartProvisionalLoad()369 void FrameLoaderClientWinCE::dispatchDidStartProvisionalLoad()
370 {
371     notImplemented();
372 }
373 
dispatchDidReceiveTitle(const StringWithDirection &)374 void FrameLoaderClientWinCE::dispatchDidReceiveTitle(const StringWithDirection&)
375 {
376     notImplemented();
377 }
378 
dispatchDidChangeIcons(WebCore::IconType)379 void FrameLoaderClientWinCE::dispatchDidChangeIcons(WebCore::IconType)
380 {
381     notImplemented();
382 }
383 
dispatchDidCommitLoad()384 void FrameLoaderClientWinCE::dispatchDidCommitLoad()
385 {
386     notImplemented();
387 }
388 
dispatchDidFinishDocumentLoad()389 void FrameLoaderClientWinCE::dispatchDidFinishDocumentLoad()
390 {
391     notImplemented();
392 }
393 
dispatchDidFirstLayout()394 void FrameLoaderClientWinCE::dispatchDidFirstLayout()
395 {
396     notImplemented();
397 }
398 
dispatchDidFirstVisuallyNonEmptyLayout()399 void FrameLoaderClientWinCE::dispatchDidFirstVisuallyNonEmptyLayout()
400 {
401     notImplemented();
402 }
403 
dispatchShow()404 void FrameLoaderClientWinCE::dispatchShow()
405 {
406     notImplemented();
407 }
408 
cancelPolicyCheck()409 void FrameLoaderClientWinCE::cancelPolicyCheck()
410 {
411     notImplemented();
412 }
413 
dispatchDidLoadMainResource(DocumentLoader *)414 void FrameLoaderClientWinCE::dispatchDidLoadMainResource(DocumentLoader*)
415 {
416     notImplemented();
417 }
418 
revertToProvisionalState(DocumentLoader *)419 void FrameLoaderClientWinCE::revertToProvisionalState(DocumentLoader*)
420 {
421     notImplemented();
422 }
423 
willChangeTitle(DocumentLoader *)424 void FrameLoaderClientWinCE::willChangeTitle(DocumentLoader*)
425 {
426     notImplemented();
427 }
428 
didChangeTitle(DocumentLoader * documentLoader)429 void FrameLoaderClientWinCE::didChangeTitle(DocumentLoader* documentLoader)
430 {
431     setTitle(documentLoader->title(), documentLoader->url());
432 }
433 
canHandleRequest(const WebCore::ResourceRequest &) const434 bool FrameLoaderClientWinCE::canHandleRequest(const WebCore::ResourceRequest&) const
435 {
436     notImplemented();
437     return true;
438 }
439 
canShowMIMEType(const String & type) const440 bool FrameLoaderClientWinCE::canShowMIMEType(const String& type) const
441 {
442     return (MIMETypeRegistry::isSupportedImageMIMEType(type)
443             || MIMETypeRegistry::isSupportedNonImageMIMEType(type)
444             || MIMETypeRegistry::isSupportedMediaMIMEType(type)
445             || PluginDatabase::installedPlugins()->isMIMETypeRegistered(type));
446 }
447 
canShowMIMETypeAsHTML(const String &) const448 bool FrameLoaderClientWinCE::canShowMIMETypeAsHTML(const String&) const
449 {
450     notImplemented();
451     return false;
452 }
453 
representationExistsForURLScheme(const String &) const454 bool FrameLoaderClientWinCE::representationExistsForURLScheme(const String&) const
455 {
456     notImplemented();
457     return false;
458 }
459 
generatedMIMETypeForURLScheme(const String &) const460 String FrameLoaderClientWinCE::generatedMIMETypeForURLScheme(const String&) const
461 {
462     notImplemented();
463     return String();
464 }
465 
finishedLoading(DocumentLoader * documentLoader)466 void FrameLoaderClientWinCE::finishedLoading(DocumentLoader* documentLoader)
467 {
468     if (!m_pluginView) {
469         documentLoader->writer()->setEncoding(m_response.textEncodingName(), false);
470         return;
471     }
472 
473     m_pluginView->didFinishLoading();
474     m_pluginView = 0;
475     m_hasSentResponseToPlugin = false;
476 }
477 
provisionalLoadStarted()478 void FrameLoaderClientWinCE::provisionalLoadStarted()
479 {
480     notImplemented();
481 }
482 
didFinishLoad()483 void FrameLoaderClientWinCE::didFinishLoad()
484 {
485     notImplemented();
486 }
487 
prepareForDataSourceReplacement()488 void FrameLoaderClientWinCE::prepareForDataSourceReplacement()
489 {
490     notImplemented();
491 }
492 
setTitle(const StringWithDirection &,const KURL &)493 void FrameLoaderClientWinCE::setTitle(const StringWithDirection&, const KURL&)
494 {
495     notImplemented();
496 }
497 
dispatchDidReceiveContentLength(DocumentLoader *,unsigned long,int)498 void FrameLoaderClientWinCE::dispatchDidReceiveContentLength(DocumentLoader*, unsigned long, int)
499 {
500     notImplemented();
501 }
502 
dispatchDidFinishLoading(DocumentLoader *,unsigned long)503 void FrameLoaderClientWinCE::dispatchDidFinishLoading(DocumentLoader*, unsigned long)
504 {
505     notImplemented();
506 }
507 
dispatchDidFailLoading(DocumentLoader *,unsigned long,const ResourceError &)508 void FrameLoaderClientWinCE::dispatchDidFailLoading(DocumentLoader*, unsigned long, const ResourceError&)
509 {
510     notImplemented();
511 }
512 
dispatchDidLoadResourceFromMemoryCache(DocumentLoader *,const WebCore::ResourceRequest &,const WebCore::ResourceResponse &,int)513 bool FrameLoaderClientWinCE::dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int)
514 {
515     notImplemented();
516     return false;
517 }
518 
dispatchDidFailProvisionalLoad(const ResourceError & error)519 void FrameLoaderClientWinCE::dispatchDidFailProvisionalLoad(const ResourceError& error)
520 {
521     dispatchDidFailLoad(error);
522 }
523 
dispatchDidFailLoad(const ResourceError &)524 void FrameLoaderClientWinCE::dispatchDidFailLoad(const ResourceError&)
525 {
526     notImplemented();
527 }
528 
download(ResourceHandle *,const WebCore::ResourceRequest &,const WebCore::ResourceRequest &,const WebCore::ResourceResponse &)529 void FrameLoaderClientWinCE::download(ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&)
530 {
531     notImplemented();
532 }
533 
cancelledError(const WebCore::ResourceRequest &)534 ResourceError FrameLoaderClientWinCE::cancelledError(const WebCore::ResourceRequest&)
535 {
536     return ResourceError();
537 }
538 
blockedError(const WebCore::ResourceRequest &)539 ResourceError FrameLoaderClientWinCE::blockedError(const WebCore::ResourceRequest&)
540 {
541     return ResourceError();
542 }
543 
cannotShowURLError(const WebCore::ResourceRequest &)544 ResourceError FrameLoaderClientWinCE::cannotShowURLError(const WebCore::ResourceRequest&)
545 {
546     return ResourceError();
547 }
548 
interruptForPolicyChangeError(const WebCore::ResourceRequest &)549 ResourceError FrameLoaderClientWinCE::interruptForPolicyChangeError(const WebCore::ResourceRequest&)
550 {
551     return ResourceError();
552 }
553 
cannotShowMIMETypeError(const WebCore::ResourceResponse &)554 ResourceError FrameLoaderClientWinCE::cannotShowMIMETypeError(const WebCore::ResourceResponse&)
555 {
556     return ResourceError();
557 }
558 
fileDoesNotExistError(const WebCore::ResourceResponse &)559 ResourceError FrameLoaderClientWinCE::fileDoesNotExistError(const WebCore::ResourceResponse&)
560 {
561     return ResourceError();
562 }
563 
pluginWillHandleLoadError(const WebCore::ResourceResponse &)564 ResourceError FrameLoaderClientWinCE::pluginWillHandleLoadError(const WebCore::ResourceResponse&)
565 {
566     return ResourceError();
567 }
568 
shouldFallBack(const ResourceError & error)569 bool FrameLoaderClientWinCE::shouldFallBack(const ResourceError& error)
570 {
571     return !(error.isCancellation());
572 }
573 
canCachePage() const574 bool FrameLoaderClientWinCE::canCachePage() const
575 {
576     return true;
577 }
578 
dispatchCreatePage(const NavigationAction &)579 Frame* FrameLoaderClientWinCE::dispatchCreatePage(const NavigationAction&)
580 {
581     notImplemented();
582     return 0;
583 }
584 
dispatchUnableToImplementPolicy(const ResourceError &)585 void FrameLoaderClientWinCE::dispatchUnableToImplementPolicy(const ResourceError&)
586 {
587     notImplemented();
588 }
589 
setMainDocumentError(DocumentLoader *,const ResourceError & error)590 void FrameLoaderClientWinCE::setMainDocumentError(DocumentLoader*, const ResourceError& error)
591 {
592     if (!m_pluginView)
593         return;
594 
595     m_pluginView->didFail(error);
596     m_pluginView = 0;
597     m_hasSentResponseToPlugin = false;
598 }
599 
startDownload(const WebCore::ResourceRequest &)600 void FrameLoaderClientWinCE::startDownload(const WebCore::ResourceRequest&)
601 {
602     notImplemented();
603 }
604 
updateGlobalHistory()605 void FrameLoaderClientWinCE::updateGlobalHistory()
606 {
607     notImplemented();
608 }
609 
updateGlobalHistoryRedirectLinks()610 void FrameLoaderClientWinCE::updateGlobalHistoryRedirectLinks()
611 {
612     notImplemented();
613 }
614 
savePlatformDataToCachedFrame(CachedFrame *)615 void FrameLoaderClientWinCE::savePlatformDataToCachedFrame(CachedFrame*)
616 {
617     notImplemented();
618 }
619 
transitionToCommittedFromCachedFrame(CachedFrame *)620 void FrameLoaderClientWinCE::transitionToCommittedFromCachedFrame(CachedFrame*)
621 {
622     notImplemented();
623 }
624 
transitionToCommittedForNewPage()625 void FrameLoaderClientWinCE::transitionToCommittedForNewPage()
626 {
627     Page* page = m_frame->page();
628     ASSERT(page);
629 
630     bool isMainFrame = m_frame == page->mainFrame();
631 
632     m_frame->setView(0);
633 
634     RefPtr<FrameView> frameView;
635     if (isMainFrame) {
636         RECT rect;
637         m_webView->frameRect(&rect);
638         frameView = FrameView::create(m_frame, IntRect(rect).size());
639     } else
640         frameView = FrameView::create(m_frame);
641 
642     m_frame->setView(frameView);
643 
644     if (m_frame->ownerRenderer())
645         m_frame->ownerRenderer()->setWidget(frameView);
646 }
647 
didSaveToPageCache()648 void FrameLoaderClientWinCE::didSaveToPageCache()
649 {
650 }
651 
didRestoreFromPageCache()652 void FrameLoaderClientWinCE::didRestoreFromPageCache()
653 {
654 }
655 
dispatchDidBecomeFrameset(bool)656 void FrameLoaderClientWinCE::dispatchDidBecomeFrameset(bool)
657 {
658 }
659 
createNetworkingContext()660 PassRefPtr<WebCore::FrameNetworkingContext> FrameLoaderClientWinCE::createNetworkingContext()
661 {
662     return FrameNetworkingContextWinCE::create(m_frame, userAgent(KURL()));
663 }
664 
665 } // namespace WebKit
666