Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Unified Diff: ios/chrome/browser/ui/omnibox/page_info_model.h

Issue 2589803002: Upstream Chrome on iOS source code [6/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm ('k') | ios/chrome/browser/ui/omnibox/page_info_model.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/ui/omnibox/page_info_model.h
diff --git a/ios/chrome/browser/ui/omnibox/page_info_model.h b/ios/chrome/browser/ui/omnibox/page_info_model.h
new file mode 100644
index 0000000000000000000000000000000000000000..321a86ebc7aae4e4353a3118aa97180dd926046d
--- /dev/null
+++ b/ios/chrome/browser/ui/omnibox/page_info_model.h
@@ -0,0 +1,125 @@
+// 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 IOS_CHROME_BROWSER_UI_OMNIBOX_PAGE_INFO_MODEL_H_
+#define IOS_CHROME_BROWSER_UI_OMNIBOX_PAGE_INFO_MODEL_H_
+
+#include <vector>
+
+#include "base/strings/string16.h"
+#include "ui/gfx/image/image.h"
+#include "url/gurl.h"
+
+class PageInfoModelObserver;
+
+namespace ios {
+class ChromeBrowserState;
+}
+
+namespace web {
+struct SSLStatus;
+}
+
+// TODO(crbug.com/227827) Merge 178763: PageInfoModel has been removed in
+// upstream; check if we should use PageInfoModel.
+// The model that provides the information that should be displayed in the page
+// info dialog/bubble.
+class PageInfoModel {
+ public:
+ enum SectionInfoType {
+ SECTION_INFO_IDENTITY = 0,
+ SECTION_INFO_CONNECTION,
+ SECTION_INFO_FIRST_VISIT,
+ SECTION_INFO_INTERNAL_PAGE, // Used for chrome:// pages, etc.
+ };
+
+ // NOTE: ICON_STATE_OK ... ICON_STATE_ERROR must be listed in increasing
+ // order of severity. Code may depend on this order.
+ enum SectionStateIcon {
+ // No icon.
+ ICON_NONE = -1,
+ // State is OK.
+ ICON_STATE_OK,
+ // For example, unverified identity over HTTPS.
+ ICON_STATE_ERROR,
+ // An information icon.
+ ICON_STATE_INFO,
+ // Icon for offline pages.
+ ICON_STATE_OFFLINE_PAGE,
+ // Icon for internal pages.
+ ICON_STATE_INTERNAL_PAGE,
+ };
+
+ // The button action that can be displayed in the Page Info. Only the button
+ // of the first section that require one will be displayed.
+ enum ButtonAction {
+ // No button.
+ BUTTON_NONE = -1,
+ // Add a button to open help center on security related page.
+ BUTTON_SHOW_SECURITY_HELP,
+ // Add a button to reload the page.
+ BUTTON_RELOAD,
+ };
+
+ struct SectionInfo {
+ SectionInfo(SectionStateIcon icon_id,
+ const base::string16& headline,
+ const base::string16& description,
+ SectionInfoType type,
+ ButtonAction button)
+ : icon_id(icon_id),
+ headline(headline),
+ description(description),
+ type(type),
+ button(button) {}
+
+ // The overall state of the connection (error, warning, ok).
+ SectionStateIcon icon_id;
+
+ // A single line describing the section, optional.
+ base::string16 headline;
+
+ // The full description of what this section is.
+ base::string16 description;
+
+ // The type of SectionInfo we are dealing with, for example: Identity,
+ // Connection, First Visit.
+ SectionInfoType type;
+
+ // The button at the bottom of the sheet that allows the user to do an extra
+ // action on top of dismissing the sheet.
+ ButtonAction button;
+ };
+
+ PageInfoModel(ios::ChromeBrowserState* browser_state,
+ const GURL& url,
+ const web::SSLStatus& ssl,
+ PageInfoModelObserver* observer);
+ ~PageInfoModel();
+
+ int GetSectionCount();
+ SectionInfo GetSectionInfo(int index);
+
+ // Returns the native image type for an icon with the given id.
+ gfx::Image* GetIconImage(SectionStateIcon icon_id);
+
+ // Returns the label for the "Certificate Information", if needed.
+ base::string16 GetCertificateLabel() const;
+
+ protected:
+ // Testing constructor. DO NOT USE.
+ PageInfoModel();
+
+ PageInfoModelObserver* observer_;
+
+ std::vector<SectionInfo> sections_;
+
+ // Label for "Certificate Information", if needed.
+ base::string16 certificate_label_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PageInfoModel);
+};
+
+#endif // IOS_CHROME_BROWSER_UI_OMNIBOX_PAGE_INFO_MODEL_H_
« no previous file with comments | « ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm ('k') | ios/chrome/browser/ui/omnibox/page_info_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698