// 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 #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_