blob: 2a7ad246caf5cf69f5739172ce18b7ba40d90e0e [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef WEBKIT_GLUE_WEB_INTENT_SERVICE_DATA_H_
#define WEBKIT_GLUE_WEB_INTENT_SERVICE_DATA_H_
#include <iosfwd>
#include "base/string16.h"
#include "googleurl/src/gurl.h"
#include "webkit/glue/webkit_glue_export.h"
namespace WebKit {
class WebIntentServiceInfo;
}
namespace webkit_glue {
// Describes the relevant elements of a WebIntent service.
struct WEBKIT_GLUE_EXPORT WebIntentServiceData {
// An intents disposition determines which context the service is opened in.
enum Disposition {
DISPOSITION_WINDOW, // Service is presented inside a new tab. (Default)
DISPOSITION_INLINE, // Service is presented inside the picker UI window.
DISPOSITION_NATIVE, // Service supplies it's own native UI in browser.
};
WebIntentServiceData();
WebIntentServiceData(const string16& action,
const string16& type,
const string16& scheme,
const GURL& service_url,
const string16& title);
explicit WebIntentServiceData(const WebKit::WebIntentServiceInfo& info);
~WebIntentServiceData();
bool operator==(const WebIntentServiceData& other) const;
void setDisposition(const string16& disp);
// |action|+|type| forms one type of unique service key. The other is
// |scheme|.
string16 action; // Name of action provided by service.
string16 type; // MIME type of data accepted by service.
// |scheme| forms one type of unique service key. The other is
// |action|+|type|. Note that this scheme is for purposes
// of matching intent services, not the scheme associated
// with the service_url.
string16 scheme; // Protocol scheme for intent service matching.
GURL service_url; // URL for service invocation.
string16 title; // The title of the service.
// Disposition specifies the way in which a service is surfaced to the user.
// Current supported dispositions are declared in the |Disposition| enum.
Disposition disposition;
};
// Printing operator - helps gtest produce readable error messages.
WEBKIT_GLUE_EXPORT std::ostream& operator<<(
std::ostream& os,
const webkit_glue::WebIntentServiceData& intent);
} // namespace webkit_glue
#endif // CHROME_BROWSER_INTENTS_WEB_INTENT_SERVICE_DATA_H_