InjectedBundlePageLoaderClient.cpp revision 65f03d4f644ce73618e5f4f50dd694b26f55ae12
165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/*
265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Apple Inc. All rights reserved.
365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *
465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Redistribution and use in source and binary forms, with or without
565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * modification, are permitted provided that the following conditions
665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * are met:
765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 1. Redistributions of source code must retain the above copyright
865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer.
965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright
1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer in the
1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    documentation and/or other materials provided with the distribution.
1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *
1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE POSSIBILITY OF SUCH DAMAGE.
2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch */
2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InjectedBundlePageLoaderClient.h"
2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InjectedBundleScriptWorld.h"
2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKAPICast.h"
3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKBundleAPICast.h"
3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebError.h"
3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/text/WTFString.h>
3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochusing namespace WebCore;
3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit {
3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didStartProvisionalLoadForFrame)
4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didReceiveServerRedirectForProvisionalLoadForFrame)
5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
5865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPage* page, WebFrame* frame, const ResourceError& error, RefPtr<APIObject>& userData)
5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didFailProvisionalLoadWithErrorForFrame)
6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), &userDataToPass, m_client.clientInfo);
6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
6865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didCommitLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
6965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
7065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didCommitLoadForFrame)
7165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
7365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didFinishDocumentLoadForFrame)
8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didFinishLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didFinishLoadForFrame)
9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
9365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame(WebPage* page, WebFrame* frame, const ResourceError& error, RefPtr<APIObject>& userData)
9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didFailLoadWithErrorForFrame)
10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), &userDataToPass, m_client.clientInfo);
10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
10765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didSameDocumentNavigationForFrame(WebPage* page, WebFrame* frame, SameDocumentNavigationType type, RefPtr<APIObject>& userData)
10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didSameDocumentNavigationForFrame)
11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
11265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
11365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
11465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), &userDataToPass, m_client.clientInfo);
11565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
11665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
11765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
11865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didReceiveTitleForFrame(WebPage* page, const String& title, WebFrame* frame, RefPtr<APIObject>& userData)
11965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
12065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didReceiveTitleForFrame)
12165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
12265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
12465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), &userDataToPass, m_client.clientInfo);
12565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
12665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didFirstLayoutForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
12965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didFirstLayoutForFrame)
13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
13565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
13965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
14065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didFirstVisuallyNonEmptyLayoutForFrame)
14165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
14265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
14465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
14565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didRemoveFrameFromHierarchy(WebPage* page , WebFrame* frame, RefPtr<APIObject>& userData)
14965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
15065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didRemoveFrameFromHierarchy)
15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
15465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didDisplayInsecureContentForFrame)
16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
16265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
16465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
16565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didRunInsecureContentForFrame(WebPage* page, WebFrame* frame, RefPtr<APIObject>& userData)
16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didRunInsecureContentForFrame)
17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WKTypeRef userDataToPass = 0;
17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.clientInfo);
17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    userData = adoptRef(toImpl(userDataToPass));
17665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
17765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochbool InjectedBundlePageLoaderClient::shouldLoadResourceForFrame(WebPage* page, WebFrame* frame, const String& resourceURL)
17965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
18065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.shouldLoadResourceForFrame)
18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return true;
18265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
18365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    return m_client.shouldLoadResourceForFrame(toAPI(page), toAPI(frame), toAPI(resourceURL.impl()), m_client.clientInfo);
18465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
18665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didClearWindowObjectForFrame(WebPage* page, WebFrame* frame, DOMWrapperWorld* world)
18765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
18865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didClearWindowObjectForFrame)
18965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
19065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
19165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didClearWindowObjectForFrame(toAPI(page), toAPI(frame), toAPI(InjectedBundleScriptWorld::getOrCreate(world).get()), m_client.clientInfo);
19265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
19365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
19465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didCancelClientRedirectForFrame(WebPage* page, WebFrame* frame)
19565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
19665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didCancelClientRedirectForFrame)
19765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
19865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didCancelClientRedirectForFrame(toAPI(page), toAPI(frame), m_client.clientInfo);
20065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
20165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame(WebPage* page, WebFrame* frame, const String& url, double delay, double date)
20365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
20465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.willPerformClientRedirectForFrame)
20565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
20665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
20765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.willPerformClientRedirectForFrame(toAPI(page), toAPI(frame), toURLRef(url.impl()), delay, date, m_client.clientInfo);
20865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
20965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
21065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InjectedBundlePageLoaderClient::didHandleOnloadEventsForFrame(WebPage* page, WebFrame* frame)
21165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
21265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    if (!m_client.didHandleOnloadEventsForFrame)
21365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return;
21465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
21565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    m_client.didHandleOnloadEventsForFrame(toAPI(page), toAPI(frame), m_client.clientInfo);
21665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
21765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
21865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebKit
219